在我的数据库中,我有一个定义了1对多关系的条目。
我只想通过设置关系获得一个简单的Lookup
。
简单示例:
汽车在同一个表中具有值(如其制造商和类型)以及在另一个表中定义的属性(如颜色,hp,引擎)。 (这只是一个从数据库的角度来看没有意义的例子。)
我想要的只是从中选择所有汽车。 Ford
作为他们的属性查找但我不明白这一点。
Currentyl我有
dbContext.Cars
.Where(c => c.Manufacturer == "Ford")
.Select(c => new {
c.Type,
Attributes = c.Attributes.Select(a => new{
a.Value
})
})
.ToLookup(arg => arg.Attributes.Select(a => a.Value), arg => arg.Type);
但是这给出了一个合并的
的查找我需要像
这样的查找[500hp] : {Type1,Type2}
[300hp] : {Type3,Type6}
[green] : {Type3,Type7}
[blue] : {Type2,Type1}
答案 0 :(得分:3)
我认为你需要的是SelectMany
:
dbContext.Cars
.Where(c => c.Manufacturer == "Ford")
.SelectMany(c => c.Attributes.Select(a =>new { c.Type, a.Value }))
.ToLookup(arg => arg.Value, arg => arg.Type);