我尝试按ContentTypeID选择所有记录
这是我尝试使用
的代码public ActionResult LoadData(int contentTypeId)
{
List<ProductContent> productContentList = (from pc in db.ProductContents
where pc.ContentTypeID == contentTypeId
select pc).ToList();
ViewBag.ProductContents = productContentList;
SubMenu subMenu = (from sm in db.SubMenuList
where sm.ContentTypeID == contentTypeId
select sm);
SubMenuItem subMenuItemList = (from smi in db.SubMenuItems
where smi.ContentTypeID == contentTypeId
select smi);
答案 0 :(得分:1)
假设db.SubMenuList
是SubMenu
的集合,那么当你这样做时:
from sm in db.SubMenuList
where sm.ContentTypeID == contentTypeId
select sm
您没有选择单个记录(即使SubMenu
只有一个ContentTypeID == contentTypeId
),您正在选择与谓词匹配的所有项目的集合。它可能只是一个项目的集合。它可能只是一个包含单个项目的集合,但编译器并不知道它并且不会假设它。
如果只有一场比赛,那么就像:
SubMenu subMenu = (from sm in db.SubMenuList
where sm.ContentTypeID == contentTypeId
select sm).First();
应该有效。或者,如果该项目可能丢失,则:
SubMenu subMenu = (from sm in db.SubMenuList
where sm.ContentTypeID == contentTypeId
select sm).FirstOrDefault();
如果没有符合您条件的项目,会将subMenu
设置为null
。