2012-06-13 78 views
0

我有以下查询:LINQ无法隐式转换类型“System.Linq.IQuerable

tblVAL tblval = db.tblVALs.Where(p => p.PID == pid); 

注意,我期望能获得应返回的项目列表。 tblVAL是实体框架中的表格。请注意,我需要一个项目清单才能退货,因为可能有1个以上的项目是退货。因此,我不想先用()等

我得到以下信息

无法隐式转换类型“System.Linq.IQuerable到wa.Models.tblVAL”。存在隐含的转换(您是否缺少演员?)

回答

1

您的查询正在返回一个集合。您需要拨打SingleOrDefault,Single,FirstFirstOrDefault才能获得单个记录。

tblVAL tblval = db.tblVALs.Where(p => p.PID == pid).SingleOrDefault(); 

如果你想收藏,您的变量类型更改为一个集合:

IEnumerable<tblVAL> tblval = db.tblVALs.Where(p => p.PID == pid); 

您也可以拨打ToList强制执行查询:

List<tblVAL> tblval = db.tblVALs.Where(p => p.PID == pid).ToList(); 
+0

我需要它来返回一个集合。我如何做到这一点。 –

+0

看到我更新的答案。 – jrummell

0

如果你可以得到很多结果回来,简单的事情就是调用ToList。

熟悉System.Linq.Enumerable的方法,您将成为linq的专家。

相关问题