[Closed] WCF Data Services Feature Suggestions

This web site is no longer being monitored by the Microsoft OData team. Visit http://odata.github.io/odata.net/ for current information on the Microsoft OData Stack for .NET and where to submit feedback.

Welcome to the WCF Data Services feature suggestion list. Find out more information about Data Services at our MSDN page.

If you have questions, need help or find a bug in Data Services, visit our forums.

How can we improve WCF Data Services?

You've used all your votes and won't be able to post a new idea, but you can still search and comment on existing ideas.

There are two ways to get more votes:

  • When an admin closes an idea you've voted on, you'll get your votes back from that idea.
  • You can remove your votes from an open idea you support.
  • To see ideas you have already voted on, select the "My feedback" filter and select "My open ideas".
(thinking…)

Enter your idea and we'll search to see if someone has already suggested it.

If a similar idea already exists, you can support and comment on it.

If it doesn't exist, you can post your idea so others can support it.

Enter your idea and we'll search to see if someone has already suggested it.

  1. Support load of related entities with filtering

    Load Customers with filter City="NYC" and Customer.Phones, and related Orders where Order.Status ="Open" and also Order.OrderDetails

    35 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Flag idea as inappropriate…  ·  Admin →
  2. Graph update

    I often have a detached entity posted back to server (web, but is applicable for any other technology as well), and want to save the entire entity graph with all its navigation and collection properties; some of which are FKs.

    Basically I'm looking for something using the idea of GraphDiff (see here: https://github.com/refactorthis/GraphDiff).

    This is for me a blocking-level issue and I hope it to be implemented quickly.

    34 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  3. Be able provide WCF DS over IQueryable<IInterface> not only classes

    Now for exposing some entities using WCF DS we need provide
    public IQueryable<Entity> Entities in DataContext class, where Entity is class

    Be able do the same but using
    public IQueryable<IEntity> Entities in
    where IEntity is interface
    and providing some fabric to WCF DS for constructing instances of objects which implements needed interface

    This will significantly increase level of possible decoupling.

    33 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  4. Fix the DataServiceCollection Remove() behavior.

    The DataServiceCollection is fundamentally broken. Removing an object from the collection should NOT remove the source object, only the relationship.

    Also, you should be able to turn on tracking whenever you want.

    33 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    3 comments  ·  Flag idea as inappropriate…  ·  Admin →
  5. Allow re-using entities from another dll on the client-side generated code

    When adding a service reference to a WCF Data Service allow me to choose a project or dll which has the entities already defined as POCOs which can be used (using their original namespaces) rather than re-creating the entities in the Reference.cs with the same namespace as the service.

    This should make things much easier on a large scale project with multiple WCF Data Services which all use the same EF entities.

    31 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Flag idea as inappropriate…  ·  Admin →
  6. Add MEF support for encoding/decoding

    Make WCF Data Services more modular so that it can support pluggable wire formats. This will allow the ability to plugin a binary format or others.

    31 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  7. Create PagingDataServiceCollection to handle ServerSide Paging/Sorting from a DataGrid/DataPager

    Create a new PagingDataServiceCollection (that inherits DataServiceCollection) or give the ability to DataServiceCollection that can allow us to handle Paging / Sorting / Grouping at the server side and support controls like the DataGrid, DataPager, etc. natively. There is a start to this here: http://blogs.msdn.com/b/phaniraj/archive/2010/08/19/implementing-server-side-sorting-paging-for-odata-feeds-in-silverlight-controls-datagrid-datapager-dataform.aspx#JoinMeForThisFeature which creates a ODataServiceCollection that is close to what is needed, but really needs all of the Change Tracking ability from DataServiceCollection.

    30 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  8. Declare custom $filter functions

    Currently, OData supports $filter=Round(rating) eq 300

    This translates to a linq query similar to Math.Round(t.rating) == 300

    I would like to be able to define functions in the svc.cs file which accept the AST that will be executed, and apply custom constraints.. hence I could define any functions. For example the URI "service.svc?$filter=IsLeapYear(CustomerYearOfBirth)" would map to the C# method

    public static Expression<Func<Customer, bool>> IsLeapYear(Expression<IQueryable<Customer>> tasks, DateTime date, Expression<Func<Customer, int>> member)

    .. that static method would manipulate the AST - in some simple way. This would be analogous to how you can sequentially manipulate an IQueryable, adding new constraints as separate…

    26 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  9. 24 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  10. Support Compiled LINQ

    Performance boost of using compiled LINQ is tremendous. It would be nice if DataServices would compile-cache query expressions coming to server based on usage statistics. Queries with Skip and Take can be left out for sure but there are always sort of static queries that differ only in query parameters department and caching those would be huge advantage.

    23 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  11. 22 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Flag idea as inappropriate…  ·  Admin →
  12. OData "Deep Update" Request Support

    Part of the OData protocol is to allow a "deep update" where you can send a request with one parent and multiple childs. According to some MS employees on the forums, this is currently not supported in the WCF DS and it is really something that should be added.

    21 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  13. context.DiscardChanges() or context.Refresh()

    There should be a method that when called, should delete all new data since last SaveChanges (and skip Unchanged entities)
    This should include primitive-type props, complex props, navigation-props, relationships (add AND deleted); everything should be undone to original store state.

    19 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  14. Add easily extendable EFDataProvider to intercept/customize calls between EF & the database

    There are times where we need to customize the data going into SP calls (add additional parameters, etc.) or when we want to read and write some of the data from in-memory sources, etc. When writes are mapped to a stored procedure, it should be easier to intercept either just before or the actual SQL Command during execution.

    19 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  15. Fix Complex Types in Data Services 5.6.0 and Entity Framework ≥ 6

    We use a complex type named Address on our entities to normalize addresses off our primary entities. This worked fine when using EF5 and Data Services 5.6.0 but since upgrading to EF6, causes the following error:

    The resource contains value '[Namespace].Address' which cannot be serialized.

    It doesn't seem to be a problem with EF as it works fine behind the data services. We suspect the Microsoft.OData.EntityFrameworkProvider is the culprit.

    16 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  16. SaveChanges AND call Action in the same transaction

    Now, as we can see in source code of BatchSaveResult.GenerateBatchRequest(), it is impossible to pass batch changes AND execute an Action in the same HTTP REQUEST.

    I need WCF Data Services may support the following scenario:

    On server, WCF Data Services are used as a basis for client/server communication. We use EntityFramework as ORM.

    In business domain, there is OrderHead entity aggregating OrderLines.

    There is a WPF form where user edits Order Head details AND make any changes to Order Lines in editable grid, including adding/deleting the lines. After that, user clicks button "Confirm Order". Server runs huge amount of…

    16 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  17. Support PUT and DELETE verbs for custom service ope

    Currently WCF Data Service only support POST for extended service operations. Attempt to implement PUT or DELETE verbs result in 405 ("not allowed") response code. This makes such operations not fully REST-compliant.

    More on this in WCF Data Services forum: http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataservices/thread/59ee75cc-7586-4987-8749-f2d020f4edcd/

    16 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  18. Add state serialization support via DataServiceState to the new portable client

    The OData client for Windows Phone has always had a way to serialize the DataServiceContext and DataServiceCollection<T> objects by using the DataServiceState object. This is critical for tombstoning and avoid having to make the same expensive requests for data whenever the app gets restored from a tombstoned state. It would be great to also have this functionality in Windows Store apps for the same reason of avoiding duplicate calls for data that could be stored serialized.

    16 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  19. Please add WCF RIA context and entity generation in WPF

    I stopped working with WPF for my LOB applications, WPF lacks the very fundamental requirement for rapid software development which is WCF RIA.
    I hope this is implemented quickly.
    It should include context and entity generation that all have built in validation and all the other scaffolding like Silverlight/ASP.NET.

    16 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  20. 15 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Flag idea as inappropriate…  ·  Admin →

[Closed] WCF Data Services Feature Suggestions

Feedback and Knowledge Base