[Closed] WCF Data Services Feature Suggestions

This web site is planned to be retired in July 31, 2019. 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. restoration of the association on the client navigation properties

    if i have Category set and Products set with many to many association, i load Categories and Products separately,

    category.Products and Products.Categories empty collections.. add optional feature to keep associations in actual state

    without a difference whence they have been received.

    while i search how to implement this behavior, i find IncludeRelationshipLinksInResponse parameter, but it include only

    link to links, and need separate requests, it is twice more requests..
    maybe if you add some like 'Inline RelationshipLinksInResponse' parameter, it will solve problem
    ( client can use TryGetEntity and restore all associations on releated entity )

    15 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  2. Array As Service Operation Parameter

    Allow Service Operations to accept array. For example I want to be able to return data for a set of dates. Currently I have to submit them as a comma seperated list or serialize and de serialize a json array

    15 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  3. 14 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Flag idea as inappropriate…  ·  Admin →
  4. Disable __metadata

    Add an option to disable the __metadata as some clients know what they're expecting thus that's not relevant and should not be generated at all!

    14 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  5. Samples, more basic samples please!

    Please add more basic samples for WCF data Services, its too damn hard to a beginner to figure out? Especially updating data. I only see those outdated examples on code.msdn.com?

    13 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  6. asynchronous processing on the server

    To increase scalebility of my code I would like to see a asynchronous processing on the server side (for example a integration with BeginExecutereader(...) EndExecuteReader(...) of the SqlCommand )

    13 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  7. WCF Data Services Client - support convention of Id properties (not just ID)

    WCF Data Services Clients only detect key properties that end with "ID" - ending with "Id" doesn't work, as it does in EntityFramework.

    To be clear, I had to jump through some hoops to make my portable model library work with the WCF Data Services Client (like many people, I want to use the same model classes on the server and client). I found that a class like this:

    public class Person
    {
    public int Id { get; set; }
    public string LastName { get; set; }
    }

    (using DbContext class on the server:)
    public class PeopleDb : DbContext
    { …

    12 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  8. Support Column/Field Level Access Restrictions

    Currently WCF supports access restrictions at the entity level using entity set access rights (and something similar for service operations). It also supports, through query interceptors, the ability to filter rows on a per-request basis. It does not, however, support access restrictions on a per-field basis. It is also quite difficult to add support for this. The only workarounds are non-trivial, especially if you're using entity framework as your provider because WCF custom generates query Expressions specifically for entity framework's IQueryable implementation, differently from custom providers or the reflection provider.

    So far, the only workarounds that appear to be feasible…

    12 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  9. Mapping non-public properties in Code-First

    It would be great if you were able to map non-public properties in Code First (without resorting to fancy tricks with reflection).
    This is very useful in when you want to define properties whose types are not directly supported (such as Enum).
    In these cases you typically define a private property that is stored, and a public property that is not stored ([NotMapped]) and then you convert between them.

    11 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Flag idea as inappropriate…  ·  Admin →
  10. WebInvoke methods with complex type parameters (similar to RIA Services - "Named Update method")

    WCF RIA Service has this, called "Named Update" methods.
    Also this named update can be part of batch - SaveChanges/SubmitChanges.

    11 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  11. Allow both base and derived types to be exposed as entity sets

    Take a scenario where there are Person and Business classes derived from a Customer class. There doesn't seem to be a good way to expose all three classes as entity sets. I may want to access all Customers generically, or I may want to get Business-specific info. Right now, I can expose one or the other, but not both. If I try, I get an error.

    11 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Flag idea as inappropriate…  ·  Admin →
  12. Support navigation properties on complex types

    WCF DS recently (5.0?) introduced the awesome feature of properties being collections of complex objects. This makes great sense for e.g. orders/orderlines and persons/addresses, since each orderline/address is owned by its parent (order/person) and does not need to be an entity. For some backends this enables great performance increase in some scenarios.

    The typical theoretical example of using complex types is an Address property of some entity. In the real world an address typically contains a city and/or a country. Although the address is unique, the city and/or county probably would be shared between several entities. Thus we would like…

    11 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  13. Make it easier to expose arbitrary objects as data service entities

    1. Allow configuring the key property without having to use DataServiceKeyAttribute
    2. Add a more general configuration API to wrap the data objects for publication as a data service entity, whatever the data objects structure may be

    10 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
  14. WCF + OData + EF Code First + Singleton: please publish real-world sample!

    I've tried to get an answer to the following request in different forums, e.g. http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/c91a5988-3298-4ca8-8688-a6fa4558dcf5, however as this is cross-product line, nobody seems to have a best-practice advice.

    Can Microsoft please publish a *working* real-world sample, demonstrating the co-existence of classic WCF, OData and EF code first using a singleton object as the root of an object graph:

    - a singleton object is the root of an object graph in memory (let's say: a company, its employees and their computers; two 1:n relations)

    - the singleton and its graph is accessed using classic WCF for complicated method calls AND…

    10 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  15. Add DataSet features to DataServiceCollection

    I did some work around for the following features but I wish it could be easier if It is in the DataServiceCollection itself :

    - RejectChanges (i.e. Cancel)
    - OldValues of entities since it is in the VM not the model private properties.
    - Load a DataServiceCollection to another (such as merge in ADO)

    Old features from Delphi 7 ClientDataSet that I miss in .Net since Several Years:

    - Undo and Redo of data changes
    - Take a Snapshot

    9 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  16. Request Response Compression

    It is said that there is a new feature to do compress when request or response. but i ask in the forum how to realize it, i get no answer, so i submit it again.

    9 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  17. Better error messages when restricted characters are used as entity keys

    Usually it's not immediately apparent what's going on when a 400 Bad Request comes back from a service due to restricted characters in entity keys (%,&,*,:,<,>,+,#, /, ?,\) Provider better error messages and provide for better mechanisms that allow for restricted characters in keys that aren't security risks.

    9 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  18. deferred property load

    Have an ability to mark a property on an entity as "deferred load enabled" along with ability to call someEntity.SomeProperty.Load() to explicitely load the property. Primary use is fro BLOB data.

    8 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  19. Indexing CLR Types

    When I have very large data sets loaded in memory, there is no way to tell Linq (and hence Data Services) that certain properties should be indexed to speed up queries.

    I'd like to be able to apply an attribute to a property that tells the CLR to index any objects that I create of that type by its property. The Linq/Data Services could make use of this information to more efficiently find objects.

    8 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  20. 7 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Flag idea as inappropriate…  ·  Admin →

[Closed] WCF Data Services Feature Suggestions

Feedback and Knowledge Base