代码之家  ›  专栏  ›  技术社区  ›  sheamus

如何确定绑定操作(函数或操作)属于给定Microsoft.Odata.Edm.IEdmModel的EntitySet?

  •  0
  • sheamus  · 技术社区  · 5 年前

    我有一个 Microsoft.Odata.Edm.iedmodel 我尝试了以下方法:

    var edm = WebApiConfig.GetOdataEdmModel();
    var operation = edm.SchemaElements.First(x => (x as IEdmOperation)?.Name == "GetRecentCustomers") as IEdmOperation;
    var boundTo = operation.FindParameter("bindingParameter");
    var matchingEntitySets = edm.EntityContainer.EntitySets()
                                .Where(x => x.Type.FullTypeName() == boundTo.Type.Definition.FullTypeName())
                                .ToList();
    

    问题是 匹配滴定

    例如。,

    var builder = new ODataConventionModelBuilder();
    builder.EntitySet<BusinessEntity>("Customers");
    builder.EntitySet<BusinessEntity>("Vendors");
    builder.EntityType<BusinessEntity>()
           .Collection
           .Function(nameof(CustomersController.GetRecentCustomers))
           .ReturnsCollectionFromEntitySet<BusinessEntity>("Customers");
    

    答案是OData不支持多个具有相同模型类型的实体集吗?如果是这样的话,为什么建筑商不对此进行保护?

    0 回复  |  直到 5 年前
        1
  •  0
  •   sheamus    4 年前

    我认为问题很简单,有多个实体集引用同一个实体。我只取了一个实体集,给了它自己的类型,这就解决了问题。