Mon*_*nah 9 c# asp.net-mvc entity-framework ef-code-first
我有以下实体(伪代码以节省空间)
Program [ int Id,
string Name,
List<ProgramFoodType> ProgramFoodTypes,
List<ProgramFood> ProgramFoods]
ProgramFoodType[ int Id, int ProgramId, int Type, bool IsActive]
ProgramFood [ int Id, int ProgramId, Food Food, FoodType FoodType]
Food [int Id, string Name]
FoodType [int Id, string Name]
Run Code Online (Sandbox Code Playgroud)
我的任务是单独Program
与ProgramFoodTypes
条件相关ProgramFoodType应该是活动的并且ProgramFoods
与相关的实体Food
和FoodType
到目前为止我使用了以下内容
1 -下面的查询将检索的细节ProgramFoodTypes
和ProgramFoods
,但它会带来所有活动和非活动ProgramFoodTypes
var program = mEntities.Programs
.Include(p =>p.ProgramFoodTypes)
.Include(p =>p.ProgramFoods.Select(f =>f.Food))
.InClude(p =>p.ProgramFoods.Select( f =>f.FoodType))
.Where(m =>m.Id== Id);
Run Code Online (Sandbox Code Playgroud)
2-以下查询将检索详细信息但缺少Food
和FoodType
var program = (from p in mEntities.Programs
where p.Id ==Id
select new {
Program = p,
ProgramFoodTypes = from pf in p.ProgramFoodTypes
where pf.IsActive
select pf,
ProgramFoods = p.ProgramFoods // here i can't add include statement
}).ToArray().Select(m => m.Program);
Run Code Online (Sandbox Code Playgroud)
如何在第二个查询中包含食物和食物类型?
或许:
var program = (from p in mEntities.Programs
where p.Id ==Id
select new {
Program = p,
ProgramFoodTypes = from pf in p.ProgramFoodTypes
where pf.IsActive
select pf,
ProgramFoods = p.ProgramFoods.Select(y => new {
Food = y.Food,
Type = y.FoodType
})
}).ToArray().Select(m => m.Program);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14893 次 |
最近记录: |