2014-09-10 31 views
0

我正在尝试使用linq查询数据,我将两个表的id ==连接到第二个表的id。我得到一个异常错误说将linq lambda查询转换为列表时出错

不能 “System.Collections.Generic.List<AnonymousType#1>”隐式转换类型 “System.Collections.Generic.List<--db table here-->”。

var qry = context.Projects 
       .Join(context.Members, p => p.ID, m => m.ID, (p, m) => new { p, m }) 
       .Where(u => u.m.ID == memId) 
       .Select(b => new { 
        b.p.ProjName, 
        b.p.ProjDesc, 
        b.p.ProjectType, 
        b.p.Tags 
       }); 
return qry.ToList(); 
+1

错误消息是非常明显的。您的方法的返回类型与您实际返回的内容不匹配。他们需要匹配。此外,这不是一个例外,这是一个编译时错误。巨大差距。 – Servy 2014-09-10 19:31:41

回答

4

你正试图从你的方法返回匿名类型的列表,但返回类型大概就像List<SomeType>

因此,您不需要创建匿名对象,而需要创建类型的对象。

.Select(b => new SomeType { 
       // set properties here 
      });