C#Entity Framework Linq在许多表中加入一对多关系

时间:2014-11-24 17:00:56

标签: c# linq entity-framework

有没有办法利用实体框架将多个表中的多对多关系绑定到C#Linq中的一个对象?

在PHP的Yii框架中,您可以加入具有多种关系的模型。每个都返回单独模型的预定义数组。

例如,我有多个卖家,他们有多个客户,他们有多个销售订单,他们有多个销售订单项。有没有办法将所有这些数据一起返回1个对象?

或者是拆分多个查询?

2 个答案:

答案 0 :(得分:0)

我相信如果你正确设置了数据模型,EF会自动处理这个问题。

假设您在表PeopleProjects之间存在多对多关系。如果您创建一个名为PeopleProjects的表,其中只有两个字段是两个表的外键,那么EF将创建一个" Projects" People对象上的集合属性,以及" People" 'Projects"上的集合属性对象

答案 1 :(得分:0)

如果你想确保没有涉及延迟加载,这将是在一个巨大的对象图中获取所有内容的方法:

var obj = dbContext.Sellers.Include(
        r => r.Customers.Select(
            r2 => r2.SalesOrders.Select(
                r3 => r3.Items
            )
        )
    ).SingleOrDefault(seller => seller.Id == id)