c# - 您可以声明 2 个同名的 OData 资源实体集吗?

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

如何声明两个具有相同名称但路由到不同区域的 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());
}

处理不同的请求,例如:

GET http://localhost/MyApp/Costco/Foods

GET http://localhost/MyApp/Ikea/Foods

最佳答案

同一 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());

关于c# - 您可以声明 2 个同名的 OData 资源实体集吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35786866/

相关文章:

json - Scala/Play 中的类似 REST 的 API 是否可以仅使用 POST 方法和 JSON 格式

rest - 使用 http 包实现 REST 多资源和标识符

c# - 如何使用 LibGit2Sharp 获取分支?

c# - 将单个或多个空格替换为 %

c# - 动态使用运行时编译的程序集

c# - 当多个线程访问时,静态方法变慢

c# - WPF AlternateContent 不工作

C# 关联数组

c# - 检查打印是否成功完成

java - 重新部署spring boot服务不重启?