Quantcast
Channel: ASP.NET MVC / Web API / Web Pages
Viewing all articles
Browse latest Browse all 7925

Closed Issue: Can't post derived type to base type's EntitySet [530]

$
0
0
For example, define models:
[EntitySet("Vehicles")]
[DataServiceKey("Id")]
public class Vehicle
{
public int Id { get; set; }

public string Model { get; set; }

public string Name { get; set; }

public virtual int WheelCount { get; set; }
}

[EntitySet("Cars")]
[DataServiceKey("Id")]
public class Car : Vehicle
{
public override int WheelCount
{
get
{
return 4;
}
}

public int SeatingCapacity { get; set; }
}

Build model:
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<Vehicle>("Vehicles");
builder.EntitySet<Car>("Cars");

return builder.GetEdmModel();

Send data back to server:
DataServiceContext ctx = new DataServiceContext(new Uri(this.BaseAddress));
ctx.AddObject("Vehicles", new Car() { SeatingCapacity = 5 });
ctx.SaveChanges();

Get exception on server side:
Microsoft.Data.OData.ODataException occurred
HResult=-2146233079
Message=The property 'SeatingCapacity' does not exist on type 'WebStack.QA.Test.OData.Formatter.Vehicle'. Make sure to only use property names that are defined by the type.
Source=Microsoft.Data.OData
StackTrace:
at Microsoft.Data.OData.ReaderValidationUtils.ValidateValuePropertyDefined(String propertyName, IEdmStructuredType owningStructuredType, ODataMessageReaderSettings messageReaderSettings, Boolean& ignoreProperty)
InnerException:

Comments: WCF DS generated proxy uses ResolveName and ResolveType method to resolve the type name in context. Hongye confirmed that the generated proxy works fine. Closing this.

Viewing all articles
Browse latest Browse all 7925

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>