你可以声明2个具有相同名称的OData资源EntitySets吗?
问题描述:
我该如何声明两个具有相同名称的OData实体集,但路由在不同的区域下?这可能吗?你可以声明2个具有相同名称的OData资源EntitySets吗?
例如:
public static void Register(HttpConfiguration config)
{
var builder = new ODataConventionModelBuilder();
builder.EntitySet<Costco.Models.Food>("Foods");
builder.EntitySet<Ikea.Models.Food>("Foods"); // this causes an exception
config.Routes.MapODataServiceRoute("MyRoute", "{area}", builder.GetEdmModel());
}
来处理像不同的请求:
答
你不能有2个具有相同名称在目前存在的实体相同的EDM模型。你必须创建两个不同的EDM模型和路线如下 -
var costcoBuilder = new ODataConventionModelBuilder();
costcoBuilder.EntitySet<Costco.Models.Food>("Foods");
var ikeaBuilder = new ODataConventionModelBuilder();
ikeaBuilder.EntitySet<Ikea.Models.Food>("Foods");
config.Routes.MapODataServiceRoute("CostcoRoute", "Costco", costcoBuilder.GetEdmModel());
config.Routes.MapODataServiceRoute("IkeaRoute", "Ikea", ikeaBuilder.GetEdmModel());
你可以使用2个不同的建设者? ikeaBuilder和costcoBuilder? – thorkia