0

以下连接投影引发错误,“'GroupJoin' 操作必须后跟 'SelectMany' 操作,其中集合选择器正在调用 'DefaultIfEmpty' 方法。” 我已经经历了一些变化的排列,但一直无法弄清楚。想法?

编辑:看起来越来越像这可能是 Dynamics CRM 问题。我为数据访问的 Xrm 模型是由 CRM SDK (CRM 2011) 生成的。

var q =
   left
     .GroupJoin(right, 
                c => c.Id, 
                cl => cl.c.Id, 
                (c, cs) => new { c, cs })
     .Where(x=>x.c.Name.Contains("some text"))
     .SelectMany(x => x.cs.DefaultIfEmpty(), (x, csubl) =>
        new
        {
            CompanyName = x.c.Name
        });
4

1 回答 1

0

我认为在查询语法中它会更漂亮

var q = from l in left
        join r in right on l.Id equals r.c.Id into groupped
        from g in groupped.DefaultIfEmpty()
        where l.Name.Contains("some text")
        select new { 
            CompanyName = l.Name; 
        }


来自msdn的示例中的更新有带有左连接的示例,因此您可以尝试上面的代码,或者Where在之前GroupJoin或之后移动SelectMany

于 2013-12-02T20:05:37.690 回答