我创建了一个变量,它返回数据库中菜单的列表ID.然后我将变量放在另一个返回列表中的菜单的查询中.我的问题是,我一直recieving误差不能隐式类型转换System.Collections.Generic.List<int?>
到int?
var getmenuids = (from r in db.Menus
where (r.Restaurantid == currentrestaurant)
select r.Id).ToList();
var meals = db.Meals.Where(r => r.MenuID = getmenuids).ToList();
Run Code Online (Sandbox Code Playgroud)
你是因为你使用有一个问题==
(相对于一个列表中的单个元素),而不是Contains()
(搜索的一个元素的列表).
var meals = db.Meals.Where(r => getmenuids.Contains(r.MenuID)).ToList();
Run Code Online (Sandbox Code Playgroud)
你也可以把这些结合起来..这样的事情:
var meals = (from meal in db.Meals
join menu in db.Menus on meal.MenuID equals menu.Id
where menu.Restaurantid == currentrestaurant
select meal).ToList();
Run Code Online (Sandbox Code Playgroud)