无法隐式转换类型'System.Linq.IQueryable'为'System.Data.Entity.DbSet'。

3
我遇到了以下错误:

无法隐式转换类型'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
}

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

报告不应该是一个列表吗? - Sidharth Mudgal
2个回答

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<ProdVal>。 - Nate Pet

0
 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

        }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接