在查询Linq中列出变量

Dol*_*aps 1 c# linq asp.net

我创建了一个变量,它返回数据库中菜单的列表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)

Gra*_*ICA 5

你是因为你使用有一个问题==(相对于一个列表中的单个元素),而不是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)