不能隐式转换type子菜单
本文关键字:SubMenu 菜单 type 转换 不能 | 更新日期: 2023-09-27 18:02:06
我试图通过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);
假设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
。