【问题标题】:Can you declare 2 OData resource EntitySets with the same name?你能声明 2 个同名的 OData 资源实体集吗?
【发布时间】:2018-06-27 01:46:06
【问题描述】:

如何声明两个同名但在不同区域下路由的 OData EntitySet?这可能吗?

例如:

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());
}

处理不同的请求,例如:

获取http://localhost/MyApp/Costco/Foods

获取http://localhost/MyApp/Ikea/Foods

【问题讨论】:

  • 您能使用 2 个不同的构建器吗? ikeaBuilder 和 costcoBuilder?

标签: c# .net rest asp.net-web-api odata


【解决方案1】:

在同一个 EDM 模型中不能有 2 个同名的不同实体。您必须创建两个不同的 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());

【讨论】:

    猜你喜欢
    • 2020-08-19
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    • 1970-01-01
    • 2010-11-19
    • 1970-01-01
    • 2021-07-15
    • 1970-01-01
    相关资源
    最近更新 更多