Odata v4 ODataModelBuilder关系构建器

时间:2015-02-11 07:52:25

标签: linq web-services odata odata-v4

我正在努力使用OData v4实现web api 我的数据库结构是单独的表,我的表之间的关系应该在Enitiy Framework中表示 我已经为我的数据库结构实现了我的EF模型,如下所示:

ODataModelBuilder builder = new ODataConventionModelBuilder();
   builder.EntitySet<tabl1>("tabl1").EntityType.HasKey(p => p.ID);
   builder.EntitySet<tabl2>("tabl2").EntityType.HasKey(p => p.ID);
   builder.EntitySet<tabl3>("tabl3").EntityType.HasKey(p => p.ID);
   builder.EntitySet<tabl4>("tabl4").EntityType.HasKey(p => p.ID);
   config.MapODataServiceRoute(
            routeName: "ODataroute",
            routePrefix: "api",
            model: builder.GetEdmModel());

如何实现表格之间的关系 所以我可以使用这样的查询,或者如果我可以使用来自我的控制器的普通linq查询操作,但它不能与我合作
http://localhost:13193/api/table1?$扩大=表2

1 个答案:

答案 0 :(得分:1)

不知道您使用的是哪种EF技术。如果您使用code-first,则只需在模型定义中设置关系。以下模型在1 : ntabl1

之间建立tabl2关系
public class tabl1
{
    public int Id { get; set; }
    public virtual tabl2 tabl2 { get; set; }
}

public class tabl2
{
    public int Id { get; set; }
    public virtual ICollection<tabl2> tabl2 { get; set; }
}