目前我正在使用带有WebApi的OData,我一直坚持在WebApiConfig文件中将多个命名空间添加到IEdmModel GetModel()中.以下是我目前使用的方法
public static IEdmModel GetModel()
{
ODataModelBuilder builder = new ODataConventionModelBuilder();
var product= builder.EntitySet<Product>("Products");
//product.EntityType.HasKey(pkg => pkg.ID);
//product.EntityType.HasKey(pkg => pkg.Code);
builder.EntitySet<Customer>("Customers");
builder.EntitySet<CustomerAddress>("CustomerAddresses");
builder.EntitySet<CustomerEmail>("CustomerEmails");
builder.EntitySet<CustomerPhone>("CustomerPhones");
builder.EntitySet<Country>("Countries");
builder.EntitySet<State>("States");
builder.EntitySet<CustomerStore>("CustomerStores");
builder.Namespace = "StateService";
builder.EntityType<State>().Collection.Function("GetStatesByCountry").ReturnsCollectionFromEntitySet<State>("States");
builder.Namespace = "ProductCategoryService";
builder.EntityType<ProductCategory>().Collection.Function("GetProductCategories").ReturnsCollectionFromEntitySet<ProductCategory>("ProductCategories");
return builder.GetEdmModel();
}
如果我添加另一个名称空间,首先会覆盖
builder.Namespace = "StateService";
builder.Namespace = "ProductCategoryService";
我的问题是有没有办法避免这个问题.任何帮助将不胜感激
解决方法:
WebAPI OData可以为每个entityType,complexType设置名称空间,例如:
// Set the default namespace
builder.Namespace = "Default";
builder.EntitySet<Product>("Products");
var prodType = builder.EntityType<Product>();
// Set the namespace for type product
prodType.Namespace = "ProductNamespace";
标签:c,asp-net-web-api,odata 来源: https://codeday.me/bug/20190628/1318465.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。