【问题标题】:error when converting linq lambda query to list将 linq lambda 查询转换为列表时出错
【发布时间】:2014-09-10 19:29:14
【问题描述】:

我正在尝试使用 linq 查询数据,我正在加入两个表,其中 id == 到第二个表的 id。我收到一个异常错误提示

不能隐式转换类型 '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();

【问题讨论】:

  • 错误信息很容易解释。您的方法的返回类型与您实际返回的类型不匹配。他们需要匹配。这也不例外,这是一个编译时错误。大不同。

标签: c# sql linq lambda


【解决方案1】:

您正试图从您的方法中返回一个匿名类型列表,但返回类型可能类似于List<SomeType>

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-23
    • 2021-05-30
    • 1970-01-01
    • 2020-06-01
    • 1970-01-01
    相关资源
    最近更新 更多