【问题标题】:Retrieving a list from a database query with Entity Framework 6使用 Entity Framework 6 从数据库查询中检索列表
【发布时间】:2019-04-18 14:57:41
【问题描述】:

我想返回一个带有实体框架的列表

using (FinalDatabaseEntities fdb = new FinalDatabaseEntities())
{
    var result = from Port in fdb.Ports select Port.Name;
    result = result.ToList();
}

我希望返回一个列表或数组(最好是列表)并将其放入我的result 变量中

我收到以下错误

错误 CS0266 无法将类型“System.Collections.Generic.List”隐式转换为“System.Linq.IQueryable”。存在显式转换(您是否缺少演员表?)最后! C:\Users\Kudzai Mhlanga\source\repos\Finally!!\Program.cs 22 Active

【问题讨论】:

  • 那么实际的问题是什么?
  • result = fdb.Ports.Select(x=>x.Name).ToList();
  • 我建议使用@Aarif 的建议,但如果您不想过多更改代码:var result = (from Port in fdb.Ports select Port.Name).ToList();
  • 所以将其添加到问题中
  • 当然感谢@Stucky

标签: c# entity-framework


【解决方案1】:

您只需要第二个局部变量,这也使您的代码更具可读性,因为第一行创建的是“查询”而不是“结果”。所以:

using (FinalDatabaseEntities fdb = new FinalDatabaseEntities())
{
    var query = from Port in fdb.Ports select Port.Name;
    var result = query.ToList();
}

【讨论】:

    【解决方案2】:

    您的代码将是:

    using (FinalDatabaseEntities fdb = new FinalDatabaseEntities())
    {
         var result = (from port in fdb.Ports  select port.Name).ToList();                      
    }
    

    【讨论】:

      猜你喜欢
      • 2017-01-23
      • 2014-03-15
      • 1970-01-01
      • 1970-01-01
      • 2015-04-13
      • 2020-05-07
      • 1970-01-01
      • 2015-11-09
      • 1970-01-01
      相关资源
      最近更新 更多