Asp.net mvc EdmNavigationPropertyInfo

Asp.net mvc EdmNavigationPropertyInfo,asp.net-mvc,metadata,odata,asp.net-web-api2,Asp.net Mvc,Metadata,Odata,Asp.net Web Api2,我正在尝试使用Webstack夜间版本中的ODataV4来提供我的web服务。在创建EDM模型期间,为了尝试创建导航属性,我正在实例化EdmNavigationPropertyInfo对象。我不确定需要在从属属性和主属性上设置什么 感谢您为我提供有关使用odata v4 api的帮助文档。您有与这些EDM类型对应的clr类型吗?如果是,请尝试下面的代码 假设CLR类型为: public class Customer { public int Id{get;set;} public

我正在尝试使用Webstack夜间版本中的ODataV4来提供我的web服务。在创建EDM模型期间,为了尝试创建导航属性,我正在实例化EdmNavigationPropertyInfo对象。我不确定需要在从属属性和主属性上设置什么


感谢您为我提供有关使用odata v4 api的帮助文档。

您有与这些EDM类型对应的clr类型吗?如果是,请尝试下面的代码

假设CLR类型为:

public class Customer
{
    public int Id{get;set;}
    public string Name{get;set;}
    public IList<Order> Orders{get;set;}
}
public class Order
{
    public int Id{get;set;}
    public String Description{get;set;}
}
公共类客户
{
公共int Id{get;set;}
公共字符串名称{get;set;}
公共IList命令{get;set;}
}
公共阶级秩序
{
公共int Id{get;set;}
公共字符串说明{get;set;}
}
然后,要获得Edm模型,可以使用以下代码:

public static IEdmModel GetEdmModel()
{
    ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
    builder.EntitySet<Customer>("Customers");
    builder.EntitySet<Order>("Orders");
    builder.Namespace = typeof(Customer).Namespace;
    var edmModel = builder.GetEdmModel();
    return edmModel;
}
公共静态IEdmModel GetedModel()
{
ODataConventionModelBuilder=新ODataConventionModelBuilder();
建筑商实体集(“客户”);
建造商实体集(“订单”);
builder.Namespace=typeof(Customer.Namespace);
var edmModel=builder.GetEdmModel();
返回模型;
}
订单将自动成为Edm客户类型的导航属性


这些示例可能会对您有所帮助:

我自己目前正在努力解决这个问题。本文可能会有所帮助:具体来说,请参见GetModel()方法示例。