我创建了一个变量,该变量从数据库返回菜单的列表ID。然后,将变量放入另一个返回餐点的查询中。我的问题是我继续收到错误无法将类型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();
最佳答案
您遇到了问题,因为您使用的是==
(将单个元素与列表进行比较)而不是Contains()
(在列表中搜索一个元素)。
var meals = db.Meals.Where(r => getmenuids.Contains(r.MenuID)).ToList();
您也可以将它们组合在一起。
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();
关于c# - 查询Linq中的列表变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22494029/