【问题标题】:Cannot implicitly convert type 'System.Linq.IQueryable to System.Data.Entity.DbSet无法将类型 'System.Linq.IQueryable 隐式转换为 System.Data.Entity.DbSet
【发布时间】:2012-10-08 19:45:54
【问题描述】:

我收到以下错误:

不能隐式转换类型 'System.Linq.IQueryable' 到 'System.Data.Entity.DbSet'。
显式转换 存在(您是否缺少演员表?)

我有以下代码:

var reports = dbContext.Product;

if (searchField == "StoreNum")
{
    int storeNum;
    int? stnum = int.TryParse(searchString, out storeNum) ? storeNum : (int?)null;

    reports = dbContext.Product
        .Where(w => w.StoreNum == stnum); // error occurs here when I try to build
}

我不明白为什么会收到此消息。

【问题讨论】:

  • 报告不应该是一个列表吗?

标签: linq


【解决方案1】:

我觉得你需要

List<ProdVal> reports;

if (searchField == "StoreNum")
    {
        int storeNum;
        int? stnum = int.TryParse(searchString, out storeNum) ? storeNum : (int?)null;

       reports = (dbContext.Product
                 .Where(w => w.StoreNum == stnum)).ToList(); // error occurs here when I try to build

    }

【讨论】:

  • 返回类型为 public IEnumerable
【解决方案2】:
 var reports = dbContext.Product.ToList();

        if (searchField == "StoreNum")
        {
            int storeNum;
            int? stnum = int.TryParse(searchString, out storeNum) ? storeNum : (int?)null;

           reports = reports
          .Where(w => w.StoreNum == stnum).AsQueryable(); // error occurs here when I try to build

        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-22
    • 1970-01-01
    • 1970-01-01
    • 2018-10-29
    • 2011-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多