如何在 ODataModelBuilder 中定义多个模型 类
how do I define multiple model classes inside ODataModelBuilder
我有一个 OData v4 Endpoint Using ASP.NET Web API
有两个独立的模型
ModelVer1.Customer.cs
int ID;
string Name;
ModelVer2.Customer.cs
int ID;
string Name;
string Address;
webapiconfig.cs
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
ODataModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<ModelVer1.Customer>("Customers");
// If I use below get error:
// The entity set 'Customers' was already configured with a different EntityType ('Customer'). Parameter name: entityType
builder.EntitySet<ModelVer2.Customer>("Customers");
config.MapODataServiceRoute(
routeName: "ODataRoute",
routePrefix: "demo/api",
model: builder.GetEdmModel());
config.Services.Replace(typeof(IHttpControllerSelector), new CustomControllerSelector(config));
}
但是出现错误:
The entity set 'Customers' was already configured with a different
EntityType ('Customer').
Parameter name: entityType
应该怎么办?
I guess i need to do something like model: builder.GetEdmModel()
need to generate this model dynamically which gets all entity model
classes like ModelVersion1.Customer and ModelVersion2.Customer
您必须使用不同的别名/名称。
而不是
builder.EntitySet<ModelVer1.Customer>("Customers");
builder.EntitySet<ModelVer2.Customer>("Customers");
使用
builder.EntitySet<ModelVer1.Customer>("Customers");
builder.EntitySet<ModelVer2.Customer>("CustomersV2");
我有一个 OData v4 Endpoint Using ASP.NET Web API
有两个独立的模型
ModelVer1.Customer.cs
int ID;
string Name;
ModelVer2.Customer.cs
int ID;
string Name;
string Address;
webapiconfig.cs
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
ODataModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<ModelVer1.Customer>("Customers");
// If I use below get error:
// The entity set 'Customers' was already configured with a different EntityType ('Customer'). Parameter name: entityType
builder.EntitySet<ModelVer2.Customer>("Customers");
config.MapODataServiceRoute(
routeName: "ODataRoute",
routePrefix: "demo/api",
model: builder.GetEdmModel());
config.Services.Replace(typeof(IHttpControllerSelector), new CustomControllerSelector(config));
}
但是出现错误:
The entity set 'Customers' was already configured with a different EntityType ('Customer'). Parameter name: entityType
应该怎么办?
I guess i need to do something like
model: builder.GetEdmModel()
need to generate this model dynamically which gets all entity model classes like ModelVersion1.Customer and ModelVersion2.Customer
您必须使用不同的别名/名称。
而不是
builder.EntitySet<ModelVer1.Customer>("Customers");
builder.EntitySet<ModelVer2.Customer>("Customers");
使用
builder.EntitySet<ModelVer1.Customer>("Customers");
builder.EntitySet<ModelVer2.Customer>("CustomersV2");