WCF Data Services Feature Suggestions
Welcome to the WCF Data Services feature suggestion list. Find out more information about Data Services at http://msdn.microsoft.com/data .
If you have questions, need help or find a bug in Data Services, visit the forums at http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataservices/threads
-
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 -
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.
8 votes -
7 votes
-
Provide small dataset sample server(s) that do everything
For example, a case with a $expand that will have main entries, each with 2 feeds, where one of those feeds has entries with feeds. Being able to test this where each level returns 5 - 7 entries, but pages them 2 entries at a time would make it much easier to test paging on the client side.
The same for returning every PayloadKind - at present we can't find an example that returns a Collection. Anyone writing a client app needs to get a sample service with this to test that it handles this case correctly.
7 votes -
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…
7 votes -
Support for DB trigger Callback Option
When there is some row is added/deleted/modified to the table which is mapped to the Entity, then client should be notified. This would be very powerful feature
7 votes -
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…
7 votes -
AllowWriteStreamBuffering = false
Allow setting of the .AllowWriteStreamBuffering property of the request. Right now data services always internally sets it to true during save changes no matter the value that is set beforehand. This is not good as it forces entire requests to be buffered client side. This has a really negative impact if trying to stream BLOB media (like a video) as a media linked entity.
6 votes -
make OData feeds (if of atom format) readable by Atom feed readers
OData is clained extension to Atompub and its main format is of Atom. However, OData does not enforce its feeds(entityset) Atom syndication compliant, and feed readers at large (like google reader) usually cannot render Odata feed properly. Should OData feed be a valid Atom syndication - with Odata extensiton like content/property of course, all feed reader would be able to dispaly it decently, given its content type if atom+xml.
6 votes -
Return the metadata only for a select
Have a $metadata only command for a select. This would return the full metadata for a select, but no actual data.
We need the metadata because we then provide the user with what properties they can make use of from a select. When providing that metadata in a prompt, we do not need any data at that point in time.
This should be on the server so that a program written to handle version 3 will still provide the correct metadata if the server is version 4 and the uri passed in uses commands that are new to version 4…
6 votes -
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.
6 votes -
Propagate Comments/Description from EDM to DataService Metadata then to Client Proxy
Propagate any existing comments in the EDM to the DataService $metadata so that the client proxy can put that into the comments of the generated properties, giving us meaningful intellisense about the classes and properties in the client.
6 votes -
Optimization for .NET clients
If WCF Data Service has a .NET client, going over .NET Client API, communication between service and that client could be additionaly optimized. I think that this would be very helpfull.
6 votes -
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…
6 votes -
Use WSDLto define OData Services instead of CSDL
Using WSDL to define service contracts will make it easier for non-Microsoft platforms to consume the services and lead to greater industry acceptance.
6 votes -
Implement Authentication
Almost all applications need authentication.
5 votes -
5 votes
-
edmx support for business logic within the entity
Being able to add read only fields. The canonical example being
public string FullName {
get { return firstName + lastName; }
}This would need to be done via EDMX - some method to wire it into the partial class, or if not auto-generated, the POCO class.
4 votes -
Entity Framework 6 provider
The Entity Framework provider in the current version of WCF Data Services does not yet support Entity Framework version 6.0 or future versions. Please make this a priority, as there is functionality I REALLY need from EF6, like table valued functions from a code-first model and reduced model building time.
4 votes -
Provide an attribute to prevent property being included in POST/MERGE requests
There are cases when you need to add an extension property to an entity on the client, such as for the StreamUri property of an MLE. We need to provide a way to not include this property in requests to the data service, which results in an error. It would be great to have an attribute, as in this blog post: http://blogs.msdn.com/b/phaniraj/archive/2008/12/11/customizing-serialization-of-entities-in-the-ado-net-data-services-client-library.aspx
4 votes
- Don't see your idea?