Make Delta<T> covariant

Please make Delta<T> covariant.

Id #1883 | Release: None | Updated: Today at 8:39 PM by yishaigalatzer | Created: Today at 4:56 PM by thebothead

There should be no cast if a contained entity is requested through derived entity.

GET ~/Accounts(200)/Namespace.PremiumAccount/PayoutPI Expected entity id: Accounts(200)/PayoutPI Actual: Accounts(200)/Namespace.PremiumAccount/PayoutPI

Id #1882 | Release: None | Updated: Today at 11:39 AM by jinfutan | Created: Today at 11:39 AM by jinfutan

Type info is missed in payload for dynamic enum property.

The root cause is ODL does not write the type information in the payload for open dynamic enum property. It will be fixed in release 6.3.0 at ODL side. This issue is opened for tracking the migrat...

Id #1881 | Release: None | Updated: Today at 4:37 AM by jiajyu | Created: Today at 4:37 AM by jiajyu

add Prefer header handling logic

ODL 6.0 RTM has a behavior change on instance annotation writing: Do not write annotation by default. Webapi.odata should have logic to read "Prefer" header from request message, and then write "P...

Id #1880 | Release: None | Updated: Today at 7:35 AM by cysu | Created: Today at 3:53 AM by cysu

ODataMessageWrapper incorrectly copies HttpHeaders to a local dictionary of <string, string>

ODataMessageWrapper copies HttpHeaders to a local dictionary of <string, string>, this should be incorrect. ODL writes some headers to the copy, but those are not reflected in response message hea...

Id #1879 | Release: None | Updated: Today at 3:37 AM by cysu | Created: Today at 3:37 AM by cysu

Support other message wrappers in `ValidationMessage()`

See #1836 for the similar issue covering the <span/> element used in ValidationSummary(). Should also give app developers the ability to override the top-level element used in ValidationMessage() ...

Id #1878 | Release: v5.2 RC | Updated: Today at 8:41 PM by yishaigalatzer | Created: Wed at 9:33 PM by dougbu

ODataUriParser can not parse the overload function import without parameter

ODataUriParser can not parse the overload function import without parameter

Id #1875 | Release: None | Updated: Wed at 3:14 PM by fenzhao | Created: Wed at 3:14 PM by fenzhao

MultipartStreamProvider does not allow to limit the size of multipart posts to MultipartMemoryStreamProvider

Too easy to max out service memory. See suggestions. https://aspnetwebstack.codeplex.com/discussions/542978

Id #1874 | Release: vNext | Updated: Wed at 6:25 PM by yishaigalatzer | Created: Wed at 3:00 PM by itaid

HttpClient.PostAsJsonAsync does not return the correct ReasonPhrase

If you consume Web API endpoint which returns HttpResponseMessage by setting the custom response message the HttpClient uses generic error messages like "Bad Request" as ReasonPhrase (for 400 Statu...

Id #1873 | Release: None | Updated: Wed at 5:09 PM by yishaigalatzer | Created: Wed at 12:27 PM by markoh

ODataUriParser can not parse key segment after function segment

ODataUriParser can not parse key segment after function segment such as: "~/Customers(42)/NS.BoundToEntityReturnsEntityCollectionNoParams()(42)"

Id #1872 | Release: None | Updated: Wed at 11:47 AM by fenzhao | Created: Wed at 11:47 AM by fenzhao

NegotiatedContentResult does not copy the error message from the incoming HttpError to HttpResponseMessage.ReasonPhrase

NegotiatedContentResult does not copy the error message from the incoming HttpError to HttpResponseMessage.ReasonPhrase When ASP.NET Web API controller action with signature like this public a...

Id #1871 | Release: None | Updated: Wed at 5:09 PM by yishaigalatzer | Created: Wed at 11:34 AM by markoh

URLs are either prematurely partially encoded or erronously not fully encoded

This behaviour can be reproduced with an out-of-the-box MVC 5 project using VS 2012. I tried using the nightly, but NuGet gives a timeout error when trying to update the packages. using System; us...

Id #1870 | Release: None | Updated: Wed at 9:55 AM by stijnherreman | Created: Wed at 9:55 AM by stijnherreman

Should not do validataion in ODataUriParser for invalid enum literal value in uri

Should not do validataion in ODataUriParser for invalid enum literal value in uri.

Id #1868 | Release: None | Updated: Wed at 9:02 AM by fenzhao | Created: Wed at 9:01 AM by fenzhao

The parameter of enum type in bound function does not work.

The parameter of enum type in bound function does not work.

Id #1867 | Release: None | Updated: Wed at 6:54 AM by fenzhao | Created: Wed at 6:54 AM by fenzhao

filtering by time throw parser error

The following query throws a parser error when it reaches the validate expression end token: $filter=time(Timestamp)%20ge%2000:01 { "error":{ "code":"","message":"The query specified in the URI ...

Id #1866 | Release: None | Updated: Wed at 4:56 PM by yishaigalatzer | Created: Tue at 8:03 PM by thebothead

The containing entity is missing in the response header Location of creating a contained entity.

Say entity types: Account, PremiumAccount, which derives from Account PaymentInstrument Containment navigation properties: Account.PayinPIs, which is of collection PaymentInstrument type If t...

Id #1865 | Release: None | Updated: Tue at 10:34 AM by jinfutan | Created: Tue at 10:34 AM by jinfutan

The selected properties are not listed in context url of an contained entity.

Say entity types: Account, PremiumAccount, which derives from Account PaymentInstrument Containment navigation properties: Account.PayoutPI, which is of type PaymentInstrument If the request i...

Id #1864 | Release: None | Updated: Tue at 10:19 AM by jinfutan | Created: Tue at 10:19 AM by jinfutan

The containing entity is missing in the id/edit link of a containment navigation property.

Say entity types: Account, PremiumAccount, which derives from Account PaymentInstrument Containment navigation properties: Account.PayoutPI, which is of type PaymentInstrument If the request i...

Id #1863 | Release: None | Updated: Tue at 8:47 AM by jinfutan | Created: Tue at 7:47 AM by jinfutan

Functions/Actions bound to a collection of entity should be advertised.

Say entity types: Account, PremiumAccount, which derives from Account PaymentInstrument Containment navigation properties: Account.PayinPIs, which is of collection PaymentInstrument type Actio...

Id #1862 | Release: None | Updated: Tue at 7:40 AM by jinfutan | Created: Tue at 7:40 AM by jinfutan

The navigation link of a containment navigation property should contain cast segment if the containing entity is actually a derived type.

Say entity types: Account, PremiumAccount, which derives from Account PaymentInstrument Containment navigation properties: Account.PayoutPI, which is of type PaymentInstrument Build the model ...

Id #1861 | Release: None | Updated: Tue at 8:39 AM by jinfutan | Created: Tue at 7:29 AM by jinfutan

The containing entity segment is missing in an action link bound to a containment navigation property

Say entity types: Account, PremiumAccount, which derives from Account PaymentInstrument Containment navigation properties: Account.PayoutPI, which is of type PaymentInstrument Actions bound to...

Id #1859 | Release: None | Updated: Tue at 7:51 AM by jinfutan | Created: Tue at 7:02 AM by jinfutan

Make annotations in WebApi Immutable

Annotations in WebApi should be immutable. For example: ClrTypeAnnotation ClrPropertyInfoAnnotation

Id #1858 | Release: None | Updated: Tue at 3:23 AM by xuzhg | Created: Tue at 3:23 AM by xuzhg

support updating a property

Looks like our implementation might not support updating a property for now. The url for updating a property would be the property name appended to the edit url of the entity being updated, as pe...

Id #1857 | Release: None | Updated: Tue at 1:12 AM by cysu | Created: Tue at 1:10 AM by cysu

In OData V4, the response should contain odata.count.

Hi, I found this error while validating http://odatavalidation.azurewebsites.net/v2/ with http://services.odata.org/validation. When odata.metadata=minimal, the response payload MUST contain o...

Id #1856 | Release: v5.2 RTM | Updated: Tue at 1:30 AM by howang | Created: Mon at 10:06 PM by yjhong

[WebAPI] ApiExplorer doesn't handle ModelBinderAttribute params

When we use ApiExplorer to generate a document, the following conditions causes the item to be skipped: 1-) Action has a parameter used via ModelBinder 2-) If it doesn't make use of TypeConverter...

Id #1854 | Release: v5.2 RTM | Updated: Wed at 6:30 PM by yishaigalatzer | Created: Mon at 1:14 PM by reverseblade

Delete TransientFunction and TransientAction

The TransientFunction is to "Create a Function that sometimes binds to this EntityType", but per OData v4, there is no such functions, so we need to delete this API. The same applies to Transient...

Id #1853 | Release: None | Updated: Sun at 8:07 AM by jinfutan | Created: Sun at 8:07 AM by jinfutan

ODataUriParser can not parse overload function import without parameters

There are two function imports with the same name in the Edm model. One has no parameter and the other has parameters. The ODataUriParser will throw ODataException while parsing the uri with the ...

Id #1852 | Release: None | Updated: Sun at 8:05 AM by fenzhao | Created: Sun at 8:05 AM by fenzhao

The 'target' name/value pair should not be contained for function/action advertisement if the metadata level is minimal and the url is the same as the canonical url.

The Json format protocol says: If odata.metadata=minimal is requested, the target name/value pair MUST be included if its value differs from the canonical function or action URL. but our implement...

Id #1851 | Release: None | Updated: Sun at 7:29 AM by jinfutan | Created: Sun at 7:29 AM by jinfutan

ParseTemplate does not need a service root for ODataUriParser

The constructor of ODataUriParser requires a service root, but the path template has none. The ODataUriParser should parse the path template without a mock service root.

Id #1850 | Release: None | Updated: Sat at 10:37 AM by fenzhao | Created: Sat at 10:37 AM by fenzhao

SxS issue of AddODataQueryFilter when it applies the given query filter

This is an SxS issue. For example, when a service hosts V3 and V4 versions of OData services, if users call the V3 version of AddODataQueryFilter to the configuration as follows: config.AddODat...

Id #1849 | Release: v5.2 RTM | Updated: Sat at 2:08 AM by yjhong | Created: Sat at 2:08 AM by yjhong

Having ODataMetadataController in the OData assembly causes issues

When a user wants to use something from OData, like EnableQuery or Delta<T> outside of the context of OData, they are forced to deal with the fact that ODataMetadataController gets included on thei...

Id #1847 | Release: None | Updated: Mon at 11:10 PM by yishaigalatzer | Created: Apr 18 at 6:15 PM by jacalvar

Provide a mechanism to turn null values into 204 responses.

This bug is related to 1718 https://aspnetwebstack.codeplex.com/workitem/1718 Provide a mechanism to turn null or empty collection values into 204 responses. In OData v3 we used to have an [ODa...

Id #1846 | Release: None | Updated: Apr 18 at 6:36 PM by yishaigalatzer | Created: Apr 18 at 6:11 PM by jacalvar

The context URL for a property request is not right.

Say AccessLevel is an enum type property of Entity type Employee, if GET ~/Employees(1)/AccessLevel is requested then: Expected: { "@odata.context":"http://jinfutan03:9124/convention/$metadata#...

Id #1843 | Release: v5.2 RC | Updated: Apr 17 at 8:57 AM by zjufish | Created: Apr 17 at 3:11 AM by jinfutan

Forbid posting a singleton from navigation link

Assume we have an entityset named "Partners" which has a navigation property "Company". If company is binding to a singleton, then post to company should be forbidden. That is: "POST Partners(1)...

Id #1841 | Release: v5.2 RC | Updated: Apr 17 at 9:05 AM by zjufish | Created: Apr 15 at 6:01 AM by zoluo

Bound Function should return the correct navigation source

Current, call GetNavigationSource() of Bound function will return the previous navigation source. As expect, it should return the navigation source by the function return type.

Id #1840 | Release: v5.2 RTM | Updated: Apr 14 at 7:33 AM by xuzhg | Created: Apr 14 at 7:33 AM by xuzhg

Add support to Requesting Entity References

Now we only support requesting Navigation Link, but not for association link. It is unable to issue a GET request to ~/odata/Products(1)/Supplier/$ref. Protocol http://docs.oasis-open.org/odata/...

Id #1839 | Release: v5.2 RC | Updated: Apr 17 at 9:26 AM by zjufish | Created: Apr 14 at 3:42 AM by jinfutan

Razor - Cannot trigger content mode/need better error message

As described in this stackoverflow Razor breaks on the following code @if (true) { <script type="text/javascript"> var a = '<script></script>'; </script> } indicating an error on the javas...

Id #1838 | Release: v5.2 RC | Updated: Apr 18 at 7:50 PM by yishaigalatzer | Created: Apr 12 at 5:38 PM by Togakangaroo

Support other top-level elements in ValidationSummary()

Currently ValidationSummary() always generates a <span> element wrapping the provided message text. User abutland has pointed out on a discussion page that <span> leads to accessibility issues -- ...

Id #1836 | Release: v5.2 RC | Updated: Apr 16 at 4:06 AM by dougbu | Created: Apr 12 at 1:18 AM by dougbu

ID defined in the base type

The scenario is oData v4 (it worked in v3). I am exposing the model as interfaces and it all works until I use the EnableQueryAttribute over the get method. As soon as the attribute is applied, t...

Id #1834 | Release: v5.2 RC | Updated: Apr 18 at 2:12 AM by danroth27 | Created: Apr 11 at 2:16 PM by raffaeler

Formatters are not found for entities exposed as interfaces

This scenario is using oData v4. I exposed a model as interfaces by mapping both concrete and interface types in the model. (next step will be to strip the concrete types from the $metadata) Wh...

Id #1833 | Release: v5.2 RC | Updated: Apr 17 at 9:01 AM by zjufish | Created: Apr 11 at 11:11 AM by raffaeler

Cannot update an dynamic collection property

Updating dynamic collection property is not supported. After updating the a collection dynamic property, the valuetype of the dynamic property in dictionary is ODataCollectionValue. which cannot...

Id #1830 | Release: v5.2 RC | Updated: Apr 10 at 6:06 AM by xuzhg | Created: Apr 10 at 6:06 AM by xuzhg

OData.Error thrown in Delegating Handler is returned in JSON format when Accept:application/atom+xml

Hello, I have OData Web API service with custom Delegating Handler. When an exception occurs in the handler it creates and returns an error response. The response returned to the client always ha...

Id #1828 | Release: v5.2 RC | Updated: Apr 18 at 8:33 PM by dmoeff | Created: Apr 9 at 8:52 PM by dmoeff

Should not throw when the target type of cast is not primitive or enumeration type

Should not throw when the target type of cast is not primitive or enumeration type. such as: cast(null,NS.ComplexType) cast(null,NS.EntityType)

Id #1827 | Release: v5.2 RC | Updated: Apr 17 at 9:09 AM by zjufish | Created: Apr 8 at 6:03 AM by fenzhao

Remove single quotes on enumeration types in cast

According to OData V4 spec, there are no single quotes on type name in cast. Non-enumeration primitive types have no single quotes now, but enumeration types won't work without single quotes. Sho...

Id #1826 | Release: v5.2 RC | Updated: Apr 17 at 9:09 AM by zjufish | Created: Apr 8 at 5:21 AM by fenzhao

Migrate to ODL V6.2

ODL V6.2 is released in Nuget. In this new version, it includes a new Uri parser for WebAPI. So, we should update to this new version to use this new Uri parser.

Id #1825 | Release: v5.2 RTM | Updated: Apr 8 at 2:49 AM by xuzhg | Created: Apr 8 at 2:32 AM by xuzhg

Should not throw exception for invalid enum cast in query option

Now the ODataQueryOptionParser and ODataUriParser will throw ODataException for invalid enum cast in query option, which is not expected. According OData V4 spec, invalid cast should return null. ...

Id #1824 | Release: v5.2 RC | Updated: Apr 17 at 9:42 AM by zjufish | Created: Apr 5 at 3:57 PM by fenzhao

Need a way to support disable <option> or <optgroup> using SelectList

We added support for disable using SelectListItem. We should add the same support when using SelectList too.

Id #1820 | Release: v5.2 RC | Updated: Tue at 7:54 PM by TianPan | Created: Apr 3 at 6:12 PM by kirthik

Add support for wpa81 for Web API Client package

We need to update the Web API Client package to add support for Windows Phone 8.1 for portable class libraries. Your library needs to target Windows Phone 8.1 explicitly Your NuGet packages needs...

Id #1819 | Release: v5.2 RC | Updated: Today at 6:43 PM by nowakra | Created: Apr 2 at 5:54 PM by kamehrot

Add http header Prefer: odata.maxpagesize.

Download https://aspnet.codeplex.com/SourceControl/latest#Samples/WebApi/OData/v4/ actions sample, Add[EnableQuery] to MoviesController.get() method request GET http://localhost:44221/odata/Movi...

Id #1818 | Release: vNext | Updated: Apr 17 at 9:37 AM by zjufish | Created: Apr 2 at 3:34 AM by jinfutan

Add HtmlHelper.FileFor

MVC binding is a great feature, but when files need to be posted, we have to go out of our way to make them integrate properly. I figured this could be simplified and I created a HTML Helper for Fi...

Id #1817 | Release: vNext | Updated: Apr 9 at 9:21 PM by danroth27 | Created: Apr 1 at 6:17 PM by MisinformedDNA

Add helper methods for the HTTP NotFound (404) and NotImplemented (501) errors

ApiController has the NotFound() method for general purposes, which has no argument list. ODATA v3 API also has some helper methods in EntitySetControllerHelpers.cs for NotImplemented errors. Acc...

Id #1812 | Release: vNext | Updated: Apr 11 at 2:18 AM by danroth27 | Created: Mar 31 at 8:34 PM by yjhong

ODataProperties().Version should be calculated according to the spec

8.1.5 Header OData-Version OData clients SHOULD use the OData-Version header on a request to specify the version of the protocol used to generate the request. If present on a request, the servi...

Id #1810 | Release: v5.2 RTM | Updated: Apr 17 at 9:41 AM by zjufish | Created: Mar 31 at 6:18 PM by jacalvar

There is no way to set OData reference in metadata.

If you are composing several metadata documents and want to reference them the specification states to use "edmx:Reference". This has no support in the web stack or EDM libs. http://docs.oasis-o...

Id #1808 | Release: vNext | Updated: Apr 17 at 9:37 AM by zjufish | Created: Mar 28 at 3:44 PM by thebothead

MVC5 Claims version of the Authorize attribute

I'm trying out some of the new stuff in VS2013 with MVC5 and the new OWIN authentication middleware. So, I'm used to using the [Authorize] attribute to limit actions by role but I'm trying to use...

Id #1807 | Release: vNext | Updated: Apr 2 at 9:34 PM by kamehrot | Created: Mar 28 at 2:43 AM by regisbsb

ModelBinder registered by SimpleModelBinderProvider won't call if no query string

When ModelBinder is registered by SimpleModelBinderProvider and used in controller method as [ModelBinderAttribute()] it will not call if there is no query string. For example: public static clas...

Id #1806 | Release: v5.2 RC | Updated: Apr 16 at 9:58 PM by kamehrot | Created: Mar 27 at 4:04 PM by starky27

Change the type of IdLink from string to uri.

Now the IdLink in ODL is all of Uri type so as to make it easier to create relative an entity id to optimize the Json payload. We should align with ODL. These IdLinks includes but not limited to...

Id #1805 | Release: v5.2 RC | Updated: Apr 17 at 9:44 AM by zjufish | Created: Mar 27 at 8:20 AM by jinfutan

support cast for complex type and collections

http://docs.oasis-open.org/odata/odata/v4.0/os/part2-url-conventions/odata-v4.0-os-part2-url-conventions.html#_Toc372793843

Id #1804 | Release: vNext | Updated: Apr 11 at 2:08 AM by danroth27 | Created: Mar 27 at 4:12 AM by zjufish

Support parameter aliases for function calls

http://host/service/EmployeesByManager(ManagerID=@p1)?@p1=3

Id #1801 | Release: v5.2 RC | Updated: Apr 11 at 2:18 AM by danroth27 | Created: Mar 26 at 3:27 AM by zjufish

ODataConventionModelBuilder should not add properties defined in base CLR type and annotated with DataMemberAttribute to derived edm type.

CLR Types: [DataContract] public class Employee { [DataMember] public int ID { get; set; } [DataMember(Name="name")] public string FullName { get; set; } [DataMember] public Gender Sex { get; set...

Id #1799 | Release: v5.2 RTM | Updated: Apr 17 at 9:40 AM by zjufish | Created: Mar 25 at 6:44 AM by jinfutan

ODataConventionModelBuilder should add properties with public getter and private setter to Edm model.

For a read only scenario, the setter may be private, e.g., public class Report { public int Id { get; private set; } public string Title { get { return "Weekly Report"; } } } ...

Id #1798 | Release: v5.2 RC | Updated: Apr 17 at 9:50 AM by zjufish | Created: Mar 25 at 2:12 AM by jinfutan

Unhandled exception is being logged when client cancels requests

Scenario: When a user loads a page, it makes one or more ajax requests, which hit ASP.NET Web API 2 controllers. If the user navigates to another page, before these ajax requests complete, the req...

Id #1797 | Release: v5.2 RC | Updated: Today at 10:38 PM by nowakra | Created: Mar 24 at 10:32 PM by kichalla

The Int64 and Decimal type property value should be serialized as string if IEEE754Compatible is set to true.

The Int64 and Decimal type property value should be serialized as string if IEEE754Compatible is set to true. But currently it is not. Sample Request: GET http://jinfutanwebapi2:9123/convention...

Id #1793 | Release: vNext | Updated: Apr 17 at 9:40 AM by zjufish | Created: Mar 24 at 2:29 AM by jinfutan

WebAPI IExceptionLogger and OperationCanceledExceptions

After upgrading to WebAPI 2.1 and adding an IExceptionLogger to capture all errors, we're seeing a lot of OperationCanceledExceptions in the log. The stack trace looks like this: System.Operation...

Id #1789 | Release: v5.2 RC | Updated: Sun at 4:44 PM by clazarr | Created: Mar 21 at 2:18 PM by michaelaird

Support delta for webapi

Support incremental maintenance of local results through "Delta Queries". https://www.google.com/url?q=https://www.oasis-open.org/committees/download.php/46575/OData%2520Deltas.pptx&sa=U&ei=0uYrU...

Id #1788 | Release: vNext | Updated: Apr 17 at 9:35 AM by zjufish | Created: Mar 21 at 7:15 AM by zjufish

Support open complex type for webapi

Open entity types and open complex types allow properties to be added dynamically to instances of the open type. http://docs.oasis-open.org/odata/odata/v4.0/os/part3-csdl/odata-v4.0-os-part3-csdl...

Id #1787 | Release: v5.2 RC | Updated: Today at 6:56 AM by xuzhg | Created: Mar 21 at 7:09 AM by zjufish

Support aggregation for OData

http://docs.oasis-open.org/odata/odata-data-aggregation-ext/v4.0/cs01/odata-data-aggregation-ext-v4.0-cs01.html

Id #1786 | Release: vNext | Updated: Apr 17 at 9:37 AM by zjufish | Created: Mar 21 at 7:08 AM by zjufish

support $search for OData

http://docs.oasis-open.org/odata/odata/v4.0/os/part1-protocol/odata-v4.0-os-part1-protocol.html#_Toc372793700

Id #1785 | Release: vNext | Updated: Apr 17 at 9:50 AM by zjufish | Created: Mar 21 at 7:05 AM by zjufish

Suppress key convention once [Key] explicitly apply at *any* properties

In OData Convention Model Builder, it will picks up all the properties that are annotated with the Key attribute or that follow the "schema Id | TypeName + Id". It's not user-friendly. We should ...

Id #1782 | Release: v5.2 RC | Updated: Mar 21 at 8:39 AM by zjufish | Created: Mar 20 at 3:42 AM by xuzhg

ControllerContext is null inside ExceptionLogger in some cases where its expected to be present

Scenario: An unhandled exception is thrown from a controller's action. User wants to log the name of the controller where this exception is thrown from. Issue: ExceptionLoggerContext.ExceptionC...

Id #1781 | Release: v5.2 RC | Updated: Wed at 11:16 PM by nowakra | Created: Mar 19 at 6:31 PM by kichalla

Integrate with ODL UriParser

Integrate with ODL's UriPaser to webapi so we can avoid using the current ODataPathHandler. The goal is to use a single parser for convention route/attribute route and query option parsing.

Id #1779 | Release: v5.2 RC | Updated: Mar 21 at 2:10 AM by danroth27 | Created: Mar 19 at 8:45 AM by zjufish

support containment in 5.2

containment is a key feature of v4 spec we'd like to include it in the 5.2 release. http://docs.oasis-open.org/odata/odata/v4.0/os/part3-csdl/odata-v4.0-os-part3-csdl.html#_Toc372793924

Id #1778 | Release: v5.2 RC | Updated: Mar 21 at 2:10 AM by danroth27 | Created: Mar 19 at 8:41 AM by zjufish

Support Singleton feature

http://docs.oasis-open.org/odata/odata/v4.0/os/part3-csdl/odata-v4.0-os-part3-csdl.html#_Toc372793988

Id #1776 | Release: v5.2 RC | Updated: Apr 10 at 5:57 AM by xuzhg | Created: Mar 19 at 8:33 AM by zjufish

Support singleton on query option

Current, the WebAPI V4 is based on ODL V6.0 beta 1. It doesn't work if we put singleton on query option. for example: ~/Customers(1)?&expand=CEO where, CEO is the navigation property and bindin...

Id #1770 | Release: vNext | Updated: Mar 18 at 8:13 AM by xuzhg | Created: Mar 18 at 8:13 AM by xuzhg

Upgrade Newtonsoft.Json to a newer version.

The package referenced is: <package id="Newtonsoft.Json" version="4.5.11" targetFramework="net45" /> And the latest one is 6.0. If user chooses to use a newer one, assembly loading redirection i...

Id #1769 | Release: vNext | Updated: Apr 17 at 9:47 AM by zjufish | Created: Mar 18 at 5:53 AM by jinfutan

OData V4 requires disabling ProxyCreation in EF

EF generates dynamic proxies for user defined models mainly for lazy loading. In OData V3, OData can serialize the response data with this dynamic proxies without any problems. In OData V4, it ...

Id #1768 | Release: v5.2 RC | Updated: Sun at 4:49 PM by clazarr | Created: Mar 18 at 12:57 AM by yjhong

Support $search in OData v4.0

The $search system query option restricts the result to include only those entities matching the specified search expression. The definition of what it means to match is dependent upon the implemen...

Id #1767 | Release: vNext | Updated: Apr 17 at 9:47 AM by zjufish | Created: Mar 17 at 8:44 PM by jacalvar

[Facebook] Facebook Authorization Filter doesn't handle request cancelling well.

If user install an Facebook App and cancel the first permission request dialog, the Facebook will redirect back to the App with "Error" in query string. The behavior is unexpected in current design...

Id #1766 | Release: v5.2 RC | Updated: Mar 19 at 9:41 PM by danroth27 | Created: Mar 17 at 5:52 PM by trdai

navigation property in a complex type

Consider support navigation property (at least non-contained nav prop, since contained nav prop is not supported by ODL yet) in a complex type. // navigation property in a complex t...

Id #1765 | Release: vNext | Updated: Apr 17 at 9:54 AM by zjufish | Created: Mar 17 at 1:20 PM by cysu

Make OData v4 filtering attributes: naming inconsistency and other issues

There are two issues with the filtering attributes for OData v4. One is that they are inconsistently named. [Unsortable] [NonFilterable] [NotExpandable] [NotNavigable] These are not logically cong...

Id #1763 | Release: v5.2 RC | Updated: Apr 17 at 9:49 AM by zjufish | Created: Mar 14 at 4:31 PM by advancedrei

ODataQueryOptions should support $id.

The supported query options are: public static bool IsSystemQueryOption(string queryOptionName) { return queryOptionName == "$orderby" || queryOptionName == "$filter" || queryOptionName =...

Id #1761 | Release: vNext | Updated: Apr 17 at 9:54 AM by zjufish | Created: Mar 13 at 8:05 AM by jinfutan

Unqualified bound actions return unresolved path segment.

When using an unqualified bound action an unresolved path segment is returned. After examination and debugging of the web stack it appears that it has been implemented to only correctly handled fu...

Id #1759 | Release: v5.2 RC | Updated: Apr 17 at 9:50 AM by zjufish | Created: Mar 12 at 2:47 PM by thebothead

The function cast should be implemented in FilterBinder.BindSingleValueFunctionCallNode.

Now cast is not implemented, such as "cast(Id, 'Edm.Int16') will result in : "message":"Unknown function 'cast'.","type":"System.NotImplementedException","stacktrace":" at System.Web.Http.OData...

Id #1757 | Release: v5.2 RC | Updated: Mar 21 at 2:16 AM by danroth27 | Created: Mar 11 at 1:53 PM by jinfutan

options.IfMatch.ApplyTo and options.IfNoneMatch.ApplyTo should return IQueryable<T> instead of IQueryable

When using ETags and using options.IfMatch.ApplyTo and options.IfNoneMatch.ApplyTo we should return IQueryable<T> instead of IQueryable. The ApplyTo will basically generate a where clause that wont...

Id #1756 | Release: v5.2 RC | Updated: Apr 17 at 9:53 AM by zjufish | Created: Mar 10 at 6:34 PM by jacalvar

OData V4 needs better supports for $ref (formally $links)

There is no easy way to support $ref(previously called $links) with the Web API OData V4, we should provide a better story for this. I think $ref or $links should be a very common scenario for cus...

Id #1754 | Release: vNext | Updated: Apr 17 at 8:39 AM by zjufish | Created: Mar 7 at 9:09 PM by yjhong

OData V4 service should not support DateTime

OData V4 should not support DateTime as follows: 4.2.2 Pruned: Edm.DateTime This data type convenient for some services and painful for a lot of clients: pico-second precision that may be off b...

Id #1753 | Release: v5.2 RC | Updated: Tue at 1:33 PM by goroth | Created: Mar 7 at 8:55 PM by yjhong

OData V4 Routes.MapODataRouteAttributes throws the null reference exception without EnsureInitialized

Receiving NullRef exception when config.EnsureIntialized is not called. public class Global : System.Web.HttpApplication { protected void Application_Start(object sender, EventArgs e) { var ...

Id #1752 | Release: v5.2 RC | Updated: Wed at 8:47 PM by yjhong | Created: Mar 7 at 8:41 PM by yjhong

OData V4 Responses MUST include the odata.metadata parameter(odata.metadata=full, odata.metadata=minimal or odata.metadata=none) to specify the amount of metadata included in the response in V4

OData Service Validator (http://services.odata.org/validation/) reports the following errors for a Web API OData V4 service. (http://odatatest1.azurewebsites.net/odata/) Responses MUST include th...

Id #1751 | Release: v5.2 RC | Updated: Mar 21 at 8:17 AM by zjufish | Created: Mar 7 at 8:19 PM by yjhong

OData V4 Services MUST return 406 Not Acceptable if the client only requests streaming and the service does not support it.

OData Service Validator (http://services.odata.org/validation/) reports the following errors for a Web API OData V4 service. (http://odatatest1.azurewebsites.net/odata/) Services MUST return 406 ...

Id #1750 | Release: v5.2 RC | Updated: Apr 10 at 11:09 PM by jacalvar | Created: Mar 7 at 8:12 PM by yjhong

OData V4 service do not properly handle invalid OData-Version header values

OData Service Validator (http://services.odata.org/validation/) reports the following errors for a Web API OData V4 service. (http://odatatest1.azurewebsites.net/odata/) If a request includes a Da...

Id #1749 | Release: v5.2 RC | Updated: Mar 24 at 4:07 PM by azhou | Created: Mar 7 at 8:05 PM by yjhong

OData V4 client unable to parse OData V4 service generated batch response

Scenario: Post a batch request using OData V4 client (Microsoft.OData.Client nuget package) to Web API OData v4 service. Issue: Web API OData service is generating a response successfully, but...

Id #1748 | Release: v5.2 RC | Updated: Apr 11 at 9:13 PM by eerhardt | Created: Mar 7 at 5:05 PM by kichalla

FilterBinder treats nullable double as decimal.

Should change arguments[0].Type == typeof(double) to IsType<double>(arguments[0].Type) in BindFloor and BindCeiling.

Id #1747 | Release: v5.2 RC | Updated: Mar 17 at 5:05 AM by azhou | Created: Mar 7 at 1:46 AM by jinfutan

[AttributeRouting] Howto support matrix parameters

Hi, i know you wont add built-in support for matrixparameters. But is it possible to implement it by our self with support of attribute routing for Webhost and Selfhost as well? Can you tell me...

Id #1746 | Release: v5.2 RC | Updated: Apr 11 at 10:51 PM by TianPan | Created: Mar 6 at 12:19 PM by gandalis

Delete TransientAction/Funcition.

Now action/function can be bound or unbound in odata v4. so there is no need to keep these 2 APIs.

Id #1744 | Release: vNext | Updated: Apr 17 at 9:53 AM by zjufish | Created: Mar 6 at 2:17 AM by jinfutan

Remove ATOM Support in WebAPI V4

ODL V4 doesn't support ATOM (XML) any more. So, follow up the ODL V4, we should remove the ATOM Support in WebAPI V4.

Id #1743 | Release: v5.2 RC | Updated: Mar 7 at 1:35 AM by xuzhg | Created: Mar 6 at 1:08 AM by xuzhg

Deserialize GeographyPoint failed

Suppose we have CLR type includes a GeographyPoint type property. public class Customer { [Key] public int ID { get; set; } public GeographyPoint Location { get; set; } } Then we wan...

Id #1742 | Release: vNext | Updated: Apr 17 at 9:51 AM by zjufish | Created: Mar 5 at 6:53 AM by xuzhg

Charset parameter should not show in Content-Type in response if Accept in request don't has it

ODL Spec says Protocol 8.2.1 If the media type specified in the Acceptheader does not include a charsetformat parameter, then the Content-Typeheader of the response MUST NOT contain a charsetfo...

Id #1741 | Release: v5.2 RC | Updated: Mar 21 at 7:46 AM by zjufish | Created: Mar 5 at 5:49 AM by xuzhg

Default settings for PostAsJsonAsync

PostAsJsonAsync currently creates new instance of JsonMediaTypeFormatter which in turn uses empty JsonSerializerSettings. I think it should be possible to provide default settings for this method...

Id #1739 | Release: Breaking changes | Updated: Mar 5 at 10:26 PM by danroth27 | Created: Mar 3 at 9:17 PM by oliverjanik

Single quote is sent to the parameter in unbound function

Function define: [HttpGet] [ODataRoute("GetSalesTaxRate(state={state})")] public IHttpActionResult GetSalesTaxRate(string state) { return Ok(GetRate(state)); } Model define: // Unbound Function b...

Id #1734 | Release: v5.2 RC | Updated: Mar 21 at 2:11 AM by danroth27 | Created: Feb 28 at 6:47 PM by trdai

Documentation of HTML helper input extensions is incorrect

The precedence described for input extensions (e.g. html.TextBoxFor) is completely misleading. Users see the following in IntelliSense today: // value: // The value of the hidden input elemen...

Id #1732 | Release: v5.2 RC | Updated: Apr 16 at 4:05 AM by dougbu | Created: Feb 28 at 5:31 PM by dougbu

It reports error if a property of type Collection(Enum) is requested.

ODL fixed it in version 6.0. Let's verify it after migration to this version. Request: ~/Employees(1)/SkillSet SkillSet is a colleciton of Enum type Skill. Response: "message":"The...

Id #1731 | Release: v5.2 RC | Updated: Mar 21 at 7:54 AM by zjufish | Created: Feb 28 at 5:08 AM by jinfutan