linq无法隐式转换类型';系统Linq可执行

linq无法隐式转换类型';系统Linq可执行,linq,Linq,我有以下疑问: tblVAL tblval = db.tblVALs.Where(p => p.PID == pid); 请注意,我希望得到一个应该返回的项目列表。 tblVAL是实体框架中的一个表。请注意,我需要一个要返回的项目列表,因为返回的项目可以超过1个。因此,我不想使用First()等 我得到以下信息 无法将类型“System.Linq.IQuerable”隐式转换为wa.Models.tblVAL。存在隐式转换(是否缺少转换?您的查询正在返回集合。您需要调用、Sing

我有以下疑问:

    tblVAL tblval = db.tblVALs.Where(p => p.PID == pid);
请注意,我希望得到一个应该返回的项目列表。 tblVAL是实体框架中的一个表。请注意,我需要一个要返回的项目列表,因为返回的项目可以超过1个。因此,我不想使用First()等

我得到以下信息


无法将类型“System.Linq.IQuerable”隐式转换为wa.Models.tblVAL。存在隐式转换(是否缺少转换?

您的查询正在返回集合。您需要调用、
Single
First
FirstOrDefault
来获取单个记录

tblVAL tblval = db.tblVALs.Where(p => p.PID == pid).SingleOrDefault();
如果需要集合,请将变量类型更改为集合:

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

如果你能得到很多结果,简单的方法就是打电话给ToList


熟悉使用的方法,您将成为linq的专家。

我需要它来返回收藏。我该如何做到这一点。
List<tblVAL> tblval = db.tblVALs.Where(p => p.PID == pid).ToList();