当我输入以下代码时,我会收到此错误:
var rec = (bNoTracking ? tblOrders.AsNoTracking() : tblOrders);
...
...
...
//error on next line: Cannot implicitly convert type 'System.Linq.IQueryable<LocalDB.tblOrder>' to 'System.Data.Entity.Infrastructure.DbQuery<LocalDB.tblOrder>'. An explicit conversion exists (are you missing a cast?)
rec = rec.Where(x => (x.WarehouseId == iWarehouseId) && (x.OrderId == iOrderId));
知道如何解决吗?
谢谢 :)
该rec
变量被隐式类型为DbQuery<tblOrder>
对象(因为tblOrders
是一个DbQuery<tblOrder>
对象,并DbQuery<T>.AsNoTracking
返回相同类型的对象)。
因此,您的var
声明在编译器中看起来像这样:
DbQuery<tblOrder> rec = (bNoTracking ? tblOrders.AsNoTracking() : tblOrders);
但是,Where
仅被定义为返回一个IQueryable<T>
对象,该对象不一定适合作为DbQuery<tblOrder>
对象。
通过显式键入rec
变量,应该有可能避免这些问题:
IQueryable<tblOrder> rec = (bNoTracking ? tblOrders.AsNoTracking() : tblOrders);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句