实体框架/ Linq:如何在分组到自定义选择时离开连接?

时间:2012-02-22 12:35:53

标签: linq entity-framework entity-framework-4

我有两个使用外键不相关的表但应该可以连接。关系(不是FK)是一对多的。例如:

Parent <- 1-to-many -> Child
  1. 我想在加入儿童时查询父母,即使他们没有孩子(左连接?)。
  2. 我希望选择 parent,同时通过某种操作手动设置children属性
  3. 样品:

        using(var context = new Test.Models.Ef.Entities())
        {
            var products = from p in context.Parent
                    join c in context.Child on p.key equals c.parentkey
                    select new {Parent = p, Child = c};
        } 
    

    问题:

    1. 我如何在上面的示例中“加入”context.Child table
    2. 我如何按照父母对孩子进行“分组”,同时在属性中手动选择孩子?
      • 伪:select p => p.Children = select c group by p

1 个答案:

答案 0 :(得分:1)

var products = from p in context.Parent
            join c in context.Child on p.key equals c.parentkey
            into pc select new { p, pc }

执行GroupJoin,转换为外连接。