Misleading Behavior: There is no way to pass the UseViewData property when creating a HiddenFor.

As it stands today, when creating a HiddenFor() on a view the HTMLHelper will automatically pass FALSE for the UseViewData property on the InputHelper() Method. Shown Here: public static MvcHtml...

Id #2146 | Release: v5.2.3 Beta | Updated: Today at 2:53 AM by CoderJon | Created: Sep 26 at 3:22 PM by CoderJon

[ODataV4] MapODataServiceRoute throws an exception if it is called before MapHttpAttributeRoutes

In ODataV4, User scenario: Create an Web API project. Call MapHttpAttributeRoutes as follows: // Web API configuration and services ODataConventionModelBuilder builder = new ODataConventionMode...

Id #2144 | Release: None | Updated: Sep 24 at 11:16 PM by yjhong | Created: Sep 24 at 11:16 PM by yjhong

EditorFor set id and name

It’d be nice to have the option to specify a name and id for elements generated by EditorFor method. Something like this: @Html.EditorFor(x => x.City.Name, new { id = "Name", name = "Name" })

Id #2142 | Release: v5.2.3 Beta | Updated: Today at 1:51 AM by dougbu | Created: Sep 24 at 8:28 AM by DaveSenn

Add support for $search query option

Hi, Is it possible to add the support for $search query option, as defined here : http://docs.oasis-open.org/odata/odata/v4.0/os/part2-url-conventions/odata-v4.0-os-part2-url-conventions.html#_To...

Id #2141 | Release: None | Updated: Sep 29 at 8:45 PM by yishaigalatzer | Created: Sep 22 at 1:02 PM by ldasilva

Same thing

Hello , Im trying to develop some facebook application using asp.net MVC ,but As all people discussed in another forum, the [FacebookAuthorize("email", "user_photos") in the facebook app template...

Id #2140 | Release: None | Updated: Today at 12:04 AM by kirthik | Created: Sep 19 at 10:05 AM by ashes267

Created response can't process the un-type object

public IHttpActionResult Post(EdmEntityObject customer) { return Created(customer); } the response Created Fails with the following exception: 500 Internal Error: Inner Exception: Cann...

Id #2135 | Release: None | Updated: Sep 12 at 4:08 AM by xuzhg | Created: Sep 12 at 4:08 AM by xuzhg

[ODataV3]The mothods BindCeiling, BindFloor and BindRound in FilterBinder.cs treat nullable double as decimal

The reason is that these methods don't handle nullable double: MethodInfo round = arguments[0].Type == typeof(double) ? ClrCanonicalFunctions.RoundOfDouble : ClrCanonicalFunctions.RoundOfDecimal;

Id #2128 | Release: v5.4 Beta | Updated: Sep 9 at 10:14 AM by azhou | Created: Sep 5 at 2:26 AM by jinfutan

virtualPathRoot is null in GlobalConfiguration.DefaultServer.Configuration when using DefaultOdataBatchHandler with katana self-hosting scenario.

My config of Katana is: public static IAppBuilder UseAdminPanel(this IAppBuilder app) { var config = new HttpConfiguration(); Func<IEdmModel> getEdmModel = () => { ...

Id #2127 | Release: None | Updated: Sep 11 at 10:43 PM by yishaigalatzer | Created: Sep 3 at 2:51 PM by Yfer

The ValidateAllNode and ValidateAnyNode methods in the class FilterQueryValidator should check if All/Any is allowed.

The 2 methods do not check if any/all is allowed. It should check it just as what the below method does: private static void ValidateFunction(string functionName, ODataValidationSettings settings) ...

Id #2125 | Release: vNext | Updated: Sep 2 at 12:08 AM by azhou | Created: Sep 1 at 3:15 AM by jinfutan

AllowedFunctions Ignored on Queryable Call

When using [EnableQuery(AllowedFunctions = AllowedFunctions.None)] no function calls should be allowed. But the following call returns the data that would only be expected if the any call was a...

Id #2122 | Release: v5.3.1 Beta | Updated: Sep 30 at 7:10 PM by kamehrot | Created: Aug 31 at 11:21 AM by ianmec

Enable Routing Conventions to be used for Dynamic Models

Currently Not all Routing Conventions have Generic action name lookups in the Controller specified. Eg. NavigationRoutingConvention expects an action named after the NavigationProperty. Which is n...

Id #2120 | Release: None | Updated: Aug 28 at 10:12 PM by yishaigalatzer | Created: Aug 27 at 2:19 PM by ShahzorKhan

Support media entities and stream properties

OData v4 spec has stream properties (aka named resource stream) and media entities (i.e., media link entries.) Both are without built-in support. Especially, for media entities, should consider ...

Id #2118 | Release: vNext | Updated: Aug 26 at 9:17 AM by azhou | Created: Aug 26 at 9:15 AM by cysu

Apply common type conventions on Enum type

For example, DataContractAttribute can be used on entity type and complex type, for example: [DataContract(Namespace = "MySpace")] public class Customer { …. } for enum type, the DataContrac...

Id #2115 | Release: vNext | Updated: Aug 22 at 3:39 AM by xuzhg | Created: Aug 22 at 3:39 AM by xuzhg

Nested $expand with $levels=max does not have correct expansion depth

Suggest MaxExpansionDepth = 5, then Request: Entities(6)?$expand=P($levels=2;$expand=D($levels=max)) will result in: $expand=P($expand=P($expand=D($expand=D($expand=D($expand=D)))), $expand=D($...

Id #2113 | Release: v5.4 Beta | Updated: Sep 4 at 2:14 AM by azhou | Created: Aug 20 at 10:16 AM by zoluo

System.Web.Helpers.ConversionUtil does not normalize "x-icon" to "icon" in NormalizeImageFormat

Background: In the System.Web.Helpers.WebImage.GetImageFromRequest(HttpRequestBase, string) method, MimeMapping.GetMimeMapping(string) is used to discern the mime-type of a posted file based on the...

Id #2106 | Release: v5.2.3 Beta | Updated: Aug 28 at 4:43 PM by pranavkm | Created: Aug 14 at 2:35 AM by jeffreyrivor

The response code should not be 404 if something follows a non-composable fucntion

For example if GetEmails is a non-composable function, and the request is GET http://jinfutan11:9123/ConventionRouting/Employees(1)/WebStack.QA.Test.OData.BoundOperation.GetEmails()/$count The r...

Id #2105 | Release: vNext | Updated: Aug 14 at 7:42 AM by azhou | Created: Aug 13 at 7:01 AM by jinfutan

The header OData-Version in a batch request is ignored by the server.

If below request is issued: POST http://jinfutan13:9123/DefaultBatch/$batch HTTP/1.1 Accept: multipart/mixed OData-Version: 3.0 Content-Type: multipart/mixed; boundary=batch_abbe2e6f-e45b-4458-9555...

Id #2099 | Release: vNext | Updated: Aug 15 at 8:39 AM by azhou | Created: Aug 8 at 2:54 AM by jinfutan

Error in DbTransaction.Commit when using $select and/or $expand on a Single Entity

I would consistently get an exception being thrown on the commit of a database transaction when using OData version 4 with WebApi and when querying a single entity by primary key but only when usin...

Id #2097 | Release: v5.4 Beta | Updated: Sep 30 at 6:45 PM by dougbu | Created: Aug 7 at 1:45 AM by smcdonald68

Web API OData: Support heterogeneous navigations (i.e. NavigationPropertyBinding is optional in CSDL spec)

Similar to #1884 (the issue asking for returning non set or even abstract entity types from Function), I would benefit from allowing types of non set, abstract, or even contained entity set types b...

Id #2095 | Release: vNext | Updated: Aug 14 at 8:06 AM by azhou | Created: Aug 6 at 6:22 AM by royoung

In Safari skipping optional permissions results in infinite login loop.

Right now due to how Safari + Facebook interact in applications Safari ends up blocking cookies that the Microsoft.AspNet.Facebook framework attempts to create. The framework uses the cookies in ...

Id #2094 | Release: FB 1.1.0 | Updated: Aug 27 at 7:33 PM by NTaylorMullen | Created: Aug 5 at 11:55 PM by NTaylorMullen

Always get parameter alias from ParameterAliasNodes by odl parser

In DefaultODataPathHandler, if unresolved path segment is encountered, we can't get parameter alias from odl parser. So we get the parameter alias info from the query string in this case. The bug...

Id #2093 | Release: v5.4 Beta | Updated: Sep 2 at 8:49 AM by azhou | Created: Aug 5 at 5:13 AM by fenzhao

HttpMessageInvoker object disposed exception

Hello, I am hosting a Web API REST service using Owin and a typical startup class, for example: public void Configuration(IAppBuilder builder) { System.Diagnostics.Debug.WriteLine...

Id #2091 | Release: v5.2.3 Beta | Updated: Sep 17 at 8:51 PM by kichalla | Created: Aug 4 at 7:16 PM by thebothead

OData V4: Swallowed ODataException(s)

In working with OData, I seem to be finding exceptions all over the place that are essentially swallowed. For example. If I try routing to a non existent entity set. Microsoft.OData.Core.UriPa...

Id #2090 | Release: vNext | Updated: Aug 14 at 8:16 AM by azhou | Created: Aug 4 at 6:20 PM by rcollette

Expect 400 for NotNavigable usage in path

We check the NotNavigable restriction in DefaultODataPathHandler: https://aspnetwebstack.codeplex.com/SourceControl/latest#OData/src/System.Web.OData/OData/Routing/DefaultODataPathHandler.cs ODa...

Id #2088 | Release: vNext | Updated: Aug 14 at 8:10 AM by azhou | Created: Aug 2 at 1:53 AM by fenzhao

Too many copies of ViewDictionaries

See https://github.com/aspnet/Mvc/issues/878

Id #2085 | Release: v5.2.3 Beta | Updated: Sep 15 at 8:47 PM by pranavkm | Created: Jul 30 at 9:54 PM by yishaigalatzer

OData V4: Support creation of Microsoft.OData.Edm.IEdmModel from DbContext

I really is hard to fathom why there are separately namespaced IEdmModel for EF and OData. There needs to be a common interface assembly that both use. As it stands, the work of one group is nev...

Id #2084 | Release: vNext | Updated: Aug 14 at 8:15 AM by azhou | Created: Jul 30 at 4:38 PM by rcollette

OData: Enum keys not recognized by ODataConventionModelBuilder

Given a class which contains properties: [Key, Range(1, int.MaxValue)] public int? Id { get; set; } /// <summary> /// The type of client /// </summary> [Key] public...

Id #2082 | Release: vNext | Updated: Aug 16 at 10:02 AM by azhou | Created: Jul 29 at 10:27 PM by rcollette

Unnecessary allocations in OutputCacheAttribute

output cache is hit pretty heavily in read-centric sites, which can lead to parts of OutputCache clogging gen-0 unnecessarily - should be optimized to reduce allocations if possible Pull request:...

Id #2081 | Release: v5.2.3 Beta | Updated: Sep 12 at 6:40 PM by dougbu | Created: Jul 29 at 1:03 PM by marcgravell

Allow enum properties to be keys

With OData 4 support for enums, composite keys, containing an enum are no longer possible. If the property is explicitly declared as enum before the explicit .HasKey call, an exception is thrown in...

Id #2080 | Release: vNext | Updated: Aug 14 at 8:13 AM by azhou | Created: Jul 29 at 9:37 AM by nirinchev

Delta<T> should avoid static properties

When initializing the _allProperties field in Delta<T> GetProperties() gets called, which includes static properties. Instead GetProperties(BindingFlags.Instance | BindingFlags.Public) should be ...

Id #2079 | Release: vNext | Updated: Aug 14 at 8:17 AM by azhou | Created: Jul 29 at 3:29 AM by jacalvar

Web API Basic Auth sample throws null ref when Invalid Credentials are supplied

Authorization still fails but an exception should not be thrown.

Id #2074 | Release: vNext | Updated: Aug 15 at 4:57 PM by davidmatson | Created: Jul 25 at 2:42 AM by MrkMnl

OData V4 service should support DateTime

OData V4 should support DateTime or you should give the developer a way of converting datatime to datetimeoffset when the service is called. I have several serializable objects that are in 3rd par...

Id #2072 | Release: v5.4 Beta | Updated: Sep 29 at 6:10 PM by vgpardue | Created: Jul 22 at 2:18 PM by goroth

WebApi ModelBinder - empty parm setting non-nullable integer to 0

I submit that given the following querystring ?mycoll=&singlevar=1 the following model class MyModel { public ICollection<int> mycoll { get; set; } public int singlevar { get; set; }...

Id #2067 | Release: vNext | Updated: Jul 23 at 9:30 PM by yishaigalatzer | Created: Jul 16 at 2:59 PM by acsteitz

Support PATCH to a complex type.

Now we the Delta class only supports Entity type, but the protocol also supports PATCH to a complex type: 11.4.9.3 Update a Complex Type A successful PATCH request to the edit URL for a complex ty...

Id #2066 | Release: vNext | Updated: Jul 21 at 2:34 AM by azhou | Created: Jul 16 at 3:02 AM by jinfutan

Support deserialize complex type value

Protocol says: The service MAY additionally support clients sending a PUT request to a URL that specifies a complex type. In this case, the service MUST replace the entire complex property with th...

Id #2065 | Release: vNext | Updated: Jul 21 at 2:34 AM by azhou | Created: Jul 16 at 2:59 AM by jinfutan

Support collection of complex type value as function parameter

We need to support this feature so that below request can be fulfilled. PUT ~/Windows(1)/OptionalShapes

Id #2064 | Release: vNext | Updated: Sep 27 at 7:23 AM by okazuki | Created: Jul 16 at 2:56 AM by jinfutan

support extension of ODataConventionModelBuilder to more custimized conventions

att. _convents member today is a private static list looks ugly and no way to change. we should fix it the same way as routing rules.

Id #2062 | Release: vNext | Updated: Jul 14 at 7:00 AM by zjufish | Created: Jul 14 at 7:00 AM by zjufish

Web API OData: Invalid Web API ODataPath attached to HttpRequestMessage when deleting an entity reference from a collection

Repro steps: Have two entity types, say Customers and Orders, with a 1 to N navigation property associating them in the EDM model (1 customer has many orders) Issue DELETE request to <svcroot>/Cu...

Id #2060 | Release: vNext | Updated: Aug 14 at 8:12 AM by azhou | Created: Jul 11 at 8:41 PM by goldenfire6

Html.AntiForgeryToken() adds duplicate X-Frame-Options headers if called more than once

System.Web.WebPages v.3.0.0.0: Sometimes, more than one anti-forgery token is needed in a page (when there are multiple forms). Calling Html.AntiForgeryToken() causes the "X-Frame-Options: SAMEO...

Id #2057 | Release: vNext | Updated: Jul 10 at 4:31 PM by yishaigalatzer | Created: Jul 10 at 3:16 PM by jeremylew

The Header OData-Version is not returned if the response status code is 204 - No Content.

For example, we issue Delete ~/Customers(1), and the response status code is 204. But the header is not included in the response.

Id #2056 | Release: vNext | Updated: Aug 16 at 10:02 AM by azhou | Created: Jul 10 at 5:24 AM by jinfutan

Make ODataPathSegmentTranslator public so that developers can write their own odata path handler.

Now if a developer write his own odata path handler, he has to duplicate the ODataPathSegmentTranslator to translate the ODL odata path to webapi odata path as it is an internal class.

Id #2052 | Release: vNext | Updated: Sep 30 at 1:55 AM by joeloughton | Created: Jul 8 at 2:18 AM by jinfutan

HelpPage VB version throws exception when the model is a generic type

Following was reported from customer...I was able to repro this and verified that C# version works fine in this case: I had a problem with this package when using generic types. I had to replace ...

Id #2050 | Release: vNext | Updated: Jul 9 at 9:26 PM by yishaigalatzer | Created: Jul 7 at 9:35 PM by kichalla

Improve the error message when failing to serialize null collection values

Currently when a user returns an object that includes a collection property and that collection property is null, we throw a 500 error (which is the right kind of error, as it's a programming error...

Id #2049 | Release: vNext | Updated: Aug 6 at 2:47 AM by xuzhg | Created: Jul 7 at 6:00 PM by jacalvar

OData expand filter

The feature in the OData 4 spec where you can filter expanded properties is missing. Will this be added in? Example 90: all categories and for each category all related products with a discontinu...

Id #2046 | Release: vNext | Updated: Sep 25 at 1:03 AM by huyq2002 | Created: Jul 4 at 10:45 AM by jrote1

Asp.net web API 2.2 for Odata V4-$filter, $skip, $top, $orderby does not work inside $expand

Hi Having an issue with Asp.net web API 2.2 for Odata V4(V 5.2.0-rtm-140611). I got a DB set Category which contains a group of UnionRanking, and below URL works fine. UR: http://localhost:72...

Id #2037 | Release: vNext | Updated: Sep 25 at 1:08 AM by huyq2002 | Created: Jun 28 at 2:49 AM by huyq2002

The UpdatedODataResult default response status code should not be 204

The protocol says: 9.1.4 Response Code 204 No Content A request returns 204 No Content if the requested resource has the null value, or if the service applies a return=minimal preference. In this c...

Id #2036 | Release: vNext | Updated: Jul 31 at 9:16 PM by rcollette | Created: Jun 27 at 8:31 AM by jinfutan

Support collection of primitive value as function parameter

Support collection of primitive value as function parameter

Id #2032 | Release: vNext | Updated: Aug 5 at 10:57 PM by goroth | Created: Jun 25 at 3:32 AM by fenzhao

OData controllers should return 405 by default for verbs that are not implemented.

When you choose not to implement one of the HTTP Verbs on an ODataController, and then call it form a client, the stack returns 404 by default. It should return 405 MethodNotAllowed. As well as...

Id #2023 | Release: vNext | Updated: Aug 14 at 7:08 AM by azhou | Created: Jun 18 at 6:45 PM by garethj

Should support NavigationPropertyBinding which contains a Navigation Property to a contained entity.

Say there is such Edm Model as below, now we don't have an API to set the NavigationPropertyBinging: <EntitySet Name="Accounts" EntityType="WebStack.QA.Test.OData.Containment.Account"> <Nav...

Id #2022 | Release: vNext | Updated: Jul 3 at 3:49 AM by azhou | Created: Jun 18 at 7:45 AM by jinfutan

Should support Action/Function returns contained entities.

Now no API is exposed on ActionConfiguration to set the return type of an Action/Function to Contained Entity Type. And these 2 are only for primitive/complex/enum types: public ActionConfigurati...

Id #2021 | Release: vNext | Updated: Aug 6 at 6:02 AM by royoung | Created: Jun 18 at 6:14 AM by jinfutan

ODataModelBuilder/ODataConventionModelBuilder should support setting default value of structural properties.

ODL provides a way to set the value: public EdmStructuralProperty(IEdmStructuredType declaringType, string name, IEdmTypeReference type, string defaultValueString, EdmConcurrencyMode concurrencyM...

Id #2019 | Release: vNext | Updated: Aug 14 at 7:29 AM by azhou | Created: Jun 16 at 12:34 PM by jinfutan

Containment and hierarchical relationships

Let's say you have a model like this public class Post { public int Id { get; set; } [Contained] public ICollection<Comment> Comments { get; set; } } public class B { public int Id { get; set; ...

Id #2018 | Release: vNext | Updated: Aug 6 at 6:03 AM by royoung | Created: Jun 14 at 10:35 PM by jacalvar

Support Edm.Date

Currently OData support extends to Edm.DateTime for System.DateTime and Edm.Time for System.TimeSpan. Can we please have the ability to set the Edm as Date? I am storing it as Date in the databa...

Id #2015 | Release: vNext | Updated: Sep 17 at 10:44 PM by j_thorn | Created: Jun 13 at 8:44 AM by Apathy

Support of adding instance annotations to complex types

It's to add the ability of adding instance annotations to complex types

Id #2013 | Release: vNext | Updated: Jun 13 at 3:08 AM by azhou | Created: Jun 13 at 3:08 AM by azhou

MultipartFormDataStreamProviderHelper should check ContentDispositionHeaderValue.FileNameStar

Some libraries (e.g. Python) set "filename*" but not "filename" in the Content-Disposition when sending multipart form data for a file. MultipartFormDataStreamProviderHelper should check ContentDis...

Id #2008 | Release: vNext | Updated: Jun 16 at 4:10 PM by yishaigalatzer | Created: Jun 10 at 3:27 PM by ejball

The response context uri should follow up the ODL V4 spec for any operation path request

For detail, please review issue: #1973: The context url in the response from a composable function followed by a property is incorrect. Currently, the fix for a request with operation segments ...

Id #2005 | Release: vNext | Updated: Jun 8 at 11:37 AM by azhou | Created: Jun 6 at 7:17 AM by xuzhg

Remove useless parameters in BuildEditLink() & BuildReadLink()

In NavigationSourceLinkBuilderAnnotation.cs, public function BuildEditLink() and BuildReadLink() have useless parameters. Please verify and remove them.

Id #2000 | Release: vNext | Updated: Jun 5 at 6:58 AM by azhou | Created: Jun 4 at 11:58 AM by xuzhg

Provide a way to enumerate all MVC actions

We don't currently have a good way to enumerate all actions and action descriptors in the framework. It's a common ask for extensibility and all the code that does it (correctly) is internal. htt...

Id #1999 | Release: vNext | Updated: Jun 11 at 9:37 PM by yishaigalatzer | Created: Jun 3 at 11:17 PM by nowakra

OutputCacheAttribute should reuse the response encoding

In OutputCacheAttribute.cs, when the response output is substituted with a StringWriter, the encoding and the culture of the response output are not forwarded to it. Also, because the default Str...

Id #1984 | Release: FB 1.0.0 | Updated: May 28 at 9:10 PM by danroth27 | Created: May 28 at 4:59 PM by sebastienros

Public access to ActionDescriptor and ControllerDescriptor

When IAuthorizationFilter is implemented, AuthorizationContext provides access to ActionDescriptor and ControllerDescriptor, so that both can be used to check whether controller and/or action is ma...

Id #1983 | Release: FB 1.0.0 | Updated: May 30 at 10:27 AM by NightOwl888 | Created: May 28 at 10:30 AM by atuzovic

The result of casting a value of DateTimeOffset to String is not always the literal representation used in payloads,

The URL convention says in http://docs.oasis-open.org/odata/odata/v4.0/os/part2-url-conventions/odata-v4.0-os-part2-url-conventions.html#_Toc372793843 : Primitive types are cast to Edm.String or a ...

Id #1982 | Release: FB 1.0.0 | Updated: May 28 at 9:10 PM by danroth27 | Created: May 28 at 6:02 AM by jinfutan

Build action/function and actionimport/functionimport are not correct.

In EdmModelHelperMethods.cs, there are some errors while building the action/function and actionimport/functionimport. For bound action/function, no need to create the actionimport/functionimport...

Id #1980 | Release: FB 1.0.0 | Updated: May 29 at 4:58 AM by xuzhg | Created: May 28 at 2:58 AM by xuzhg

"&" is not the correct logic symbol used in conditional statement

in AddProcedures function of EdmModelHelperMethods.cs there is a conditional statement as follows: if (procedure.IsBindable && procedure.Title != null & procedure.Title != procedure.Name) Where,...

Id #1979 | Release: FB 1.0.0 | Updated: May 28 at 9:10 PM by danroth27 | Created: May 28 at 2:27 AM by xuzhg

The "LiteralText" property of ConstantNode in parsed result of ODataUriParser should never be null

The "LiteralText" property of ConstantNode in parsed result of ODataUriParser should never be null For example: parsing "~/FunctionAtRoot(NullableInt32Parameter=1)" The parsed parameter value in...

Id #1978 | Release: FB 1.0.0 | Updated: May 28 at 9:10 PM by danroth27 | Created: May 28 at 1:35 AM by fenzhao

Navigation link is not correctly generated for nested containment propert

If you have an entity set with an entity type that has a containment navigation property, which the target type also has a containment navigation property, when you do a GET on an entity in the fir...

Id #1976 | Release: FB 1.0.0 | Updated: May 28 at 9:10 PM by danroth27 | Created: May 27 at 7:17 PM by thebothead

ODataUriParser cannot parse Enum function parameter when its EdmType is nullable

ODataUriParser cannot parse Enum function parameter when its EdmType is nullable. such as ~/FunctionAtRoot(Parameter=NS.SimpleEnum'0') The Parameter is defined as Nullable=true The ODataUriParse...

Id #1975 | Release: FB 1.0.0 | Updated: May 28 at 9:10 PM by danroth27 | Created: May 27 at 3:40 PM by fenzhao

The context url is incorrect if the response from an action or function is a property of a single entity.

OData protocol part 1 says: 10.16 Operation Result Context URL templates: {context-url}#{entity-set}{/type-name}{select-list} {context-url}#{entity-set}{/type-name}{select-list}/$entity {context-...

Id #1972 | Release: FB 1.0.0 | Updated: May 28 at 9:10 PM by danroth27 | Created: May 27 at 10:36 AM by jinfutan

Help page: Documentation of data model annotations in "buddy" class (MetadataType)

Hi, nice work with adding documentation of model annotations :-) In many scenarios the model class is a generated partial class. In those cases, the recommended way to add field annotation is via...

Id #1971 | Release: FB 1.0.0 | Updated: Jun 26 at 4:24 PM by 23skidoo | Created: May 27 at 7:02 AM by ToreErstad

Enforce $ref be the last segment in ODataUriParser with correct error message.

Enforce $ref be the last segment in ODataUriParser with correct error message. Now ODataUriParser supports to have KeySegment and $count follow $ref.

Id #1968 | Release: vNext | Updated: May 29 at 3:52 AM by dougbu | Created: May 26 at 6:33 AM by fenzhao

[unit tests] Confirm no unit tests rely on ambient locale

This is initially more of a work item. But I expect some problems will turn up and need to be fixed. In a quick check, the Turkish user locale does not cause problems when unit testing the web s...

Id #1966 | Release: v5.2 RTM | Updated: Jun 15 at 11:51 PM by dougbu | Created: May 23 at 8:04 PM by dougbu

Move direct annotations in webapi.odata to use v4 vocabulary

Shall move to use v4 vocabulary / capability etc. for the work done last year (etag, query limitations, etc.) Query limitations: - Filterability ($filter) - Sortability ($orderby) - Querya...

Id #1961 | Release: vNext | Updated: May 21 at 4:58 AM by azhou | Created: May 21 at 4:48 AM by cysu

Enum on un-type support

Currently, enum on un-type doesn't work. While, the collection of enum on un-type doesn't work too. As ODL spec says: Structural property can be : 1) primitive type 2) complex type 3) enum ...

Id #1956 | Release: vNext | Updated: Jun 10 at 5:35 AM by azhou | Created: May 20 at 8:36 AM by xuzhg

Support Key As Segment

Now we have to override whole DefaultODataPatchHandler and copy internal class ODataPathSegmentTranslator to support key as segment. Add extensive way in DefaultODataPathHandler and MapODataServic...

Id #1955 | Release: vNext | Updated: Aug 21 at 3:41 PM by smcdonald68 | Created: May 20 at 1:56 AM by fenzhao

Return OK on CORS preflight requests no matter what

A CORS preflight request is about establishing trust. It's purpose is not to tell whether or not a resource might work, but if a trust can be established between between the calling domain and t...

Id #1951 | Release: vNext | Updated: May 26 at 11:05 AM by jgauffin | Created: May 17 at 7:27 PM by jgauffin

Support dynamic property on query option

for example: Get ~/Customers?$filter=MyDynamicProperty eq 'xxx' or Get ~/Customers$orderby=MyDynamicProperty

Id #1943 | Release: vNext | Updated: May 20 at 2:37 PM by azhou | Created: May 14 at 6:26 AM by xuzhg

Support CRUD on single dynamic property of open type

Do we want to support CRUD on single dynamic property of the open type? for example: Get ~/Customers(1)/MyDynamicPropertName Post ~/Customers(1)/MyDynamicPropertName Put ~/Customers(1)/MyDy...

Id #1942 | Release: vNext | Updated: May 20 at 2:38 PM by azhou | Created: May 14 at 6:25 AM by xuzhg

OData BatchHandler starts and ends batch request on different threads.

HttpBatchHandler starts and ends bacth request on different threads. Assume, you create batching request (BR), including 2 change-sets (CS1, CS2). So, OData batching handler will process BR in ...

Id #1940 | Release: vNext | Updated: Jun 11 at 7:03 PM by adamcaviness | Created: May 13 at 2:21 PM by catahoc

Support more canonical functions in query option

Support more canonical functions in filter query option fractionalseconds Edm.Decimal fractionalseconds(Edm.DateTimeOffset) Edm.Decimal fractionalseconds(Edm.TimeOfDay) http://host/service/Emp...

Id #1933 | Release: vNext | Updated: May 12 at 7:11 AM by azhou | Created: May 11 at 4:56 AM by fenzhao

ODataRoutePrefix and custom HttpControllerSelector

Hi, I am working with webapi and oData v4. I am exposing an entity, say "Order", both via oData and via webapi, So I have two OrdersController, one deriving from ApiController and the other fro...

Id #1931 | Release: vNext | Updated: Sep 29 at 8:13 PM by wmlrose | Created: May 9 at 3:11 PM by raffaeler

ODL parser should throw when there are single quotes on type name of cast

According to V4 spec, there are no single quotes on type name of cast. such as: cast('Two, Four',NS.FlagsEnum) Now the odl parser is too lax and won't throw if there are single quotes and supp...

Id #1927 | Release: vNext | Updated: May 9 at 2:14 AM by fenzhao | Created: May 9 at 2:14 AM by fenzhao

DropdownListFor modifies the SelectListItem collection passed to it

Hi, When using the DropdownListFor helper and passing to it the collection of SelectListItem from which it is populated, the DropdownListFor will modify the passed collection after it is called; ...

Id #1913 | Release: vNext | Updated: May 14 at 7:27 AM by wutever0 | Created: May 6 at 10:05 AM by wutever0

support non-updatable properties by core.computed or capabilities.nonupdatableproperties annotations

Web API work to able services to support non-updatable properties. This implies that we need to add these annotations in the metadata document and allow data services to set these properties.

Id #1908 | Release: vNext | Updated: Jun 10 at 3:33 AM by garethj | Created: May 5 at 8:15 AM by zjufish

function 'isof' validation does not work well.

http://host/svc/Orders?$filter=isof(%27Edm.String%27) If user specify AllowedFunctions.None in ODataValidationSettings, 'isof' function could still get passed when doing queryoption validation. ...

Id #1905 | Release: vNext | Updated: May 12 at 2:06 AM by fenzhao | Created: May 4 at 3:19 AM by karata

Make FilterGrouping and GetFilterGrouping (HttpActionDescriptor) public

I'm currently in the process of implementing my own IHttpController, which to a large degree mirrors the functionality of the ApiController, but for several reasons can't extend it, the main ones b...

Id #1902 | Release: vNext | Updated: May 7 at 9:41 PM by yishaigalatzer | Created: May 2 at 2:24 AM by Alxandr

Add more test cases to test ODL will compute the links if the service didn't set them

Add more test cases to test ODL will compute the links if the service didn't set them

Id #1897 | Release: vNext | Updated: May 5 at 8:47 AM by zjufish | Created: Apr 30 at 3:32 AM by xuzhg

Add $count segement support

$count as a segment should support in WebApi. For example: ~/Customers/$count

Id #1895 | Release: vNext | Updated: Sep 2 at 12:08 PM by claudiacarvalhoc | Created: Apr 30 at 1:23 AM by xuzhg

Support using member name as value in EnumHelper

I think having the option to use the Enum member name as value would be a good feature. Text values are a lot more descriptive, specially when used in query strings, e.g. ?color=Red instead of ?c...

Id #1894 | Release: vNext | Updated: Apr 30 at 9:19 PM by yishaigalatzer | Created: Apr 30 at 12:49 AM by maxtoroq

$expand with filter does not apply filter.

As per v4 specification I should be able to add a filter to an expanded property: http://host/service/Categories?$expand=Products($filter=DiscontinuedDate eq null) Currently the filter does seem t...

Id #1893 | Release: vNext | Updated: Sep 2 at 1:36 AM by azhou | Created: Apr 29 at 8:31 PM by thebothead

Help pages for odata controllers

I would like to request that the help pages, like on standard asp.net web api be provided for odata controllers as well. Currently the tooling does not work for odata. http://stackoverflow.com/qu...

Id #1892 | Release: vNext | Updated: Sep 24 at 8:06 PM by AceHack | Created: Apr 29 at 3:15 PM by psteele706

ConventionHelpers.GetProperties doesn't handle hierachies well

The following is the implementation from the method. The issue is that it only really looks one level deep in the hierarchy: public static IEnumerable<PropertyInfo> GetProperties(EntityTypeConf...

Id #1887 | Release: vNext | Updated: May 12 at 6:40 AM by azhou | Created: Apr 28 at 9:59 PM by jacalvar

Add support for functions that return heterogeneous collections of entity types

I have three entity sets and would like to expose a function that returns a collection whose contents are any number of objects from each of these three sets. According to the CSDL specification ...

Id #1884 | Release: vNext | Updated: Aug 6 at 5:55 AM by royoung | Created: Apr 25 at 5:25 PM by tyrius

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: vNext | Updated: Aug 17 at 9:57 PM by rcollette | Created: Apr 24 at 3:53 AM by cysu

Delegate deciding the response and content headers of the response to ODL

Currently Web API OData handles what headers go in the response (response headers and content headers). Ideally we would like to leverage ODL for this. In order to do that, we need some way to tell...

Id #1879 | Release: vNext | Updated: Aug 14 at 8:15 AM by azhou | Created: Apr 24 at 3:37 AM by cysu

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: Apr 23 at 6:25 PM by yishaigalatzer | Created: Apr 23 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: vNext | Updated: May 5 at 9:10 AM by zjufish | Created: Apr 23 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: vNext | Updated: May 5 at 9:07 AM by zjufish | Created: Apr 23 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: vNext | Updated: May 5 at 9:09 AM by zjufish | Created: Apr 23 at 11:34 AM by markoh

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: vNext | Updated: May 5 at 9:16 AM by zjufish | Created: Apr 22 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: vNext | Updated: May 5 at 9:17 AM by zjufish | Created: Apr 22 at 7:29 AM by jinfutan

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: vNext | Updated: May 5 at 9:23 AM by zjufish | Created: Apr 22 at 1:10 AM by cysu