linq无法隐式转换类型'System.Linq.IQueryable

时间:2012-06-13 16:34:01

标签: linq

我有以下查询:

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

请注意,我希望获得应该返回的项目列表。 tblVAL是实体框架中的一个表。请注意,我需要返回一个项目列表,因为这些项目可以返回超过1个项目。因此,我不想使用First()等

我收到以下消息

无法将类型'System.Linq.IQuerable'隐式转换为wa.Models.tblVAL'。存在隐式转换(您是否错过了演员?)

2 个答案:

答案 0 :(得分:1)

您的查询正在返回一个集合。您需要致电SingleOrDefaultSingleFirstFirstOrDefault以获取单条记录。

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();

答案 1 :(得分:0)

如果你能得到很多结果,那么简单的做法是调用ToList。

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