简化。 EF6
我有两个与PersonId相关的表
Person
PersonPK
FavouriteFood
PersonFK
FoodName
我希望得到所有喜欢“西红柿”食物的人
_db.Persons(p=>p.FavouriteFoods(???????))
答案 0 :(得分:3)
看起来Person
和FavouriteFoods
之间存在一对多关系,您可以得到如下结果:
var query = _db.Person
.Where(r=>
r.FavouriteFoods.Any(t => t.FoodName == "Tomatoes"));
如果Person
和FavouriteFoods
之间没有任何关系,那么您可以从PersonFK
获取Distinct FavouriteFood
,然后从Person
表中获取记录。
类似的东西:
var query = _db.Person
.Where(r=> _db.FavouriteFoods
.Where(r=> r.FoodName == "Tomatoes")
.Select(t=> t.PersonFK)
.Distinct()
.Contains(r.PersonPK));