C# SQL LINQ选择标题和属于该标题的列表

C# SQL LINQ选择标题和属于该标题的列表,c#,asp.net,.net,linq,entity-framework,C#,Asp.net,.net,Linq,Entity Framework,我有一些用于处理菜单的表格,首先是MenuOfTheWeek,其中我有以下信息: menuOfTheWeekId, menuId, isMenuOfTheWeek, timestamp 我还有桌上菜单: menuId, userId 和带有以下内容的表菜单: menuRecipesId, menuId, recipeId 我不想选择菜单标题和菜单中的食谱列表。我在写一些类似的东西 var result = context.Menu .Where(x =>

我有一些用于处理菜单的表格,首先是MenuOfTheWeek,其中我有以下信息:

menuOfTheWeekId, menuId, isMenuOfTheWeek, timestamp
我还有桌上菜单:

menuId, userId 
和带有以下内容的表菜单:

menuRecipesId, menuId, recipeId
我不想选择菜单标题和菜单中的食谱列表。我在写一些类似的东西

var result = context.Menu
             .Where(x => x.MenuOfTheWeek.Where(mw => mw.isMenuOfTheWeek == true))
             .Select(x => new
             {
                 title = x.MenuTranslation.FirstOrDefault().title,
                 List<Recipe> menuRecipes = x.MenuRecipes ...
             };
与嵌套的listview相比,我可以将MenuRecipes作为数据源。这很好,但我相信我也可以用codebehind中的LINQ来写,我也不想学习关于这些选择的一些新东西

谢谢你的帮助

var result = (from p in context.MenuOfTheWeekSet
    .Include("MenuRecipes")
    .Include("Recipe")
    where p.isMenuOfTheWeek
    select p.Menu).FirstOrDefault();

foreach (MenuRecipes r in result.MenuRecipes)
{
    Console.WriteLine(r.Recipe.recipeId);
}


假设您的模型如图所示。那么像这样的事情应该会奏效。然后你就有了菜单,你可以访问该菜单的食谱。

是的,你的图片上的模型可以。谢谢你的帮助,我可以选择我不想要的数据,但你的答案不是我想要的。。。因为我知道你可以通过分组选择标题作为一个完整的食谱列表的关键。但在您的解决方案中,我需要选择所有菜单项,通过数据库连接获得我需要的数据-这需要我提供一个foreach和一个select作为标题(但groupby将为我提供此功能)。。。但是谢谢你的帮助,你给了我如何暂时解决我的问题的想法我不确定你为什么想要他们(标题+菜单)作为匿名类型?如果缺少菜单翻译,还可以将其包含到查询中。
var result = (from p in context.MenuOfTheWeekSet
    .Include("MenuRecipes")
    .Include("Recipe")
    where p.isMenuOfTheWeek
    select p.Menu).FirstOrDefault();

foreach (MenuRecipes r in result.MenuRecipes)
{
    Console.WriteLine(r.Recipe.recipeId);
}