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

WCF Data Services Feature Suggestions

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 vote and comment on it.

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

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

  1. 1 vote
    Vote
    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      I agree to the terms of service
      Signed in as (Sign out)
      You have left! (?) (thinking…)
      0 comments  ·  Flag idea as inappropriate…  ·  Admin →
    • 1 vote
      Vote
      Sign in
      Check!
      (thinking…)
      Reset
      or sign in with
      • facebook
      • google
        Password icon
        I agree to the terms of service
        Signed in as (Sign out)
        You have left! (?) (thinking…)
        0 comments  ·  Flag idea as inappropriate…  ·  Admin →
      • OData "Deep Insert" Request Support

        Part of the OData protocol is to allow a "deep insert" where you can send a request with multiple items in one request. 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.

        48 votes
        Vote
        Sign in
        Check!
        (thinking…)
        Reset
        or sign in with
        • facebook
        • google
          Password icon
          I agree to the terms of service
          Signed in as (Sign out)
          You have left! (?) (thinking…)
          0 comments  ·  Flag idea as inappropriate…  ·  Admin →
        • 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
          Check!
          (thinking…)
          Reset
          or sign in with
          • facebook
          • google
            Password icon
            I agree to the terms of service
            Signed in as (Sign out)
            You have left! (?) (thinking…)
            0 comments  ·  Flag idea as inappropriate…  ·  Admin →
          • 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
            Check!
            (thinking…)
            Reset
            or sign in with
            • facebook
            • google
              Password icon
              I agree to the terms of service
              Signed in as (Sign out)
              You have left! (?) (thinking…)
              1 comment  ·  Flag idea as inappropriate…  ·  Admin →
            • let me save expensive intermediate LINQ results in temp table

              LINQ-to-Entities should offer an anaogous operator to AsEnumerable() but instead of materializing results on the client, it would materiailze results on the server (e.g. a temp table for SQL Server), allowing subsequent operators to re-use intermediate results without risking additional server recomputation or requiring a round-trip from client to server.

              The underlying requirement is to make it easier to build and maintain performant LINQ queries that use millions of rows, many complex joins, I/O intensive calculations like running totals or self-joins, or all of the above.

              For these kinds of queries in T-SQL, a good way to get predictable performance…

              1 vote
              Vote
              Sign in
              Check!
              (thinking…)
              Reset
              or sign in with
              • facebook
              • google
                Password icon
                I agree to the terms of service
                Signed in as (Sign out)
                You have left! (?) (thinking…)
                1 comment  ·  Flag idea as inappropriate…  ·  Admin →
              • 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
                Check!
                (thinking…)
                Reset
                or sign in with
                • facebook
                • google
                  Password icon
                  I agree to the terms of service
                  Signed in as (Sign out)
                  You have left! (?) (thinking…)
                  2 comments  ·  Flag idea as inappropriate…  ·  Admin →
                • 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

                  37 votes
                  Vote
                  Sign in
                  Check!
                  (thinking…)
                  Reset
                  or sign in with
                  • facebook
                  • google
                    Password icon
                    I agree to the terms of service
                    Signed in as (Sign out)
                    You have left! (?) (thinking…)
                    2 comments  ·  Flag idea as inappropriate…  ·  Admin →
                  • 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
                    Check!
                    (thinking…)
                    Reset
                    or sign in with
                    • facebook
                    • google
                      Password icon
                      I agree to the terms of service
                      Signed in as (Sign out)
                      You have left! (?) (thinking…)
                      0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                    • 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
                      Check!
                      (thinking…)
                      Reset
                      or sign in with
                      • facebook
                      • google
                        Password icon
                        I agree to the terms of service
                        Signed in as (Sign out)
                        You have left! (?) (thinking…)
                        0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                      • 5 votes
                        Vote
                        Sign in
                        Check!
                        (thinking…)
                        Reset
                        or sign in with
                        • facebook
                        • google
                          Password icon
                          I agree to the terms of service
                          Signed in as (Sign out)
                          You have left! (?) (thinking…)
                          1 comment  ·  Flag idea as inappropriate…  ·  Admin →
                        • Send parameters of Service operation in body

                          Currently, service operation requires parameters passed in query string even in case of POST request. Batch request can avoid the limitation of query string length, but it still has limitation of System.Uri class (64Kib) on client and server sides of custom data service.
                          So, we can't serialize complex data and pass it as input parameter of service operation without small size limitation.

                          47 votes
                          Vote
                          Sign in
                          Check!
                          (thinking…)
                          Reset
                          or sign in with
                          • facebook
                          • google
                            Password icon
                            I agree to the terms of service
                            Signed in as (Sign out)
                            You have left! (?) (thinking…)
                            3 comments  ·  Flag idea as inappropriate…  ·  Admin →
                          • Filtering by value from naviagtion properties

                            Filtering by value from naviagtion properties.

                            Persons?$filter = Age eq 30 and /Children.Age > 5

                            46 votes
                            Vote
                            Sign in
                            Check!
                            (thinking…)
                            Reset
                            or sign in with
                            • facebook
                            • google
                              Password icon
                              I agree to the terms of service
                              Signed in as (Sign out)
                              You have left! (?) (thinking…)
                              0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                            • Should be able to project entity type or complex type objects

                              Instead of creating anonymous types we should be able to project the LINQ to entity type or complex type.

                              3 votes
                              Vote
                              Sign in
                              Check!
                              (thinking…)
                              Reset
                              or sign in with
                              • facebook
                              • google
                                Password icon
                                I agree to the terms of service
                                Signed in as (Sign out)
                                You have left! (?) (thinking…)
                                0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                              • DataServiceCollection Mock/Stub support

                                Allow for the mocking / stubbing of the DataServiceCollection and context. All the constructors are internal. It would be nice if they all had interfaces that could be easily stubbed out.

                                279 votes
                                Vote
                                Sign in
                                Check!
                                (thinking…)
                                Reset
                                or sign in with
                                • facebook
                                • google
                                  Password icon
                                  I agree to the terms of service
                                  Signed in as (Sign out)
                                  You have left! (?) (thinking…)
                                  6 comments  ·  Flag idea as inappropriate…  ·  Admin →
                                • 42 votes
                                  Vote
                                  Sign in
                                  Check!
                                  (thinking…)
                                  Reset
                                  or sign in with
                                  • facebook
                                  • google
                                    Password icon
                                    I agree to the terms of service
                                    Signed in as (Sign out)
                                    You have left! (?) (thinking…)
                                    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                                  • 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
                                    Check!
                                    (thinking…)
                                    Reset
                                    or sign in with
                                    • facebook
                                    • google
                                      Password icon
                                      I agree to the terms of service
                                      Signed in as (Sign out)
                                      You have left! (?) (thinking…)
                                      0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                                    • 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
                                      Check!
                                      (thinking…)
                                      Reset
                                      or sign in with
                                      • facebook
                                      • google
                                        Password icon
                                        I agree to the terms of service
                                        Signed in as (Sign out)
                                        You have left! (?) (thinking…)
                                        1 comment  ·  Flag idea as inappropriate…  ·  Admin →
                                      • New DataSvcUtil.exe Option -- Create User Friendly Partial Classes‏

                                        I don't know how many people use partial classes to augment the generated classes in the DataServiceContext file from DataSvcUtil.exe. I am asking that a new option be added to DataSvcUtil.exe to have a file that sits next to the generated one to allow people to add their own custom entity properties.

                                        4 votes
                                        Vote
                                        Sign in
                                        Check!
                                        (thinking…)
                                        Reset
                                        or sign in with
                                        • facebook
                                        • google
                                          Password icon
                                          I agree to the terms of service
                                          Signed in as (Sign out)
                                          You have left! (?) (thinking…)
                                          0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                                        • 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

                                          7 votes
                                          Vote
                                          Sign in
                                          Check!
                                          (thinking…)
                                          Reset
                                          or sign in with
                                          • facebook
                                          • google
                                            Password icon
                                            I agree to the terms of service
                                            Signed in as (Sign out)
                                            You have left! (?) (thinking…)
                                            1 comment  ·  Flag idea as inappropriate…  ·  Admin →
                                          • Don't see your idea?

                                          WCF Data Services Feature Suggestions

                                          Feedback and Knowledge Base