相关表查询上的Linq

相关表查询上的Linq,linq,entity-framework,entity-framework-5,Linq,Entity Framework,Entity Framework 5,简化的。EF6 我在PersonId上有两张相关的桌子 Person PersonPK FavouriteFood PersonFK FoodName 我想得到所有喜欢吃“西红柿”的人 看起来在人和收藏夹食品之间存在一对多关系,您可以得到如下结果: var query = _db.Person .Where(r=> r.FavouriteFoods.Any(t => t.Foo

简化的。EF6

我在PersonId上有两张相关的桌子

 Person
    PersonPK

 FavouriteFood
    PersonFK
    FoodName
我想得到所有喜欢吃“西红柿”的人


看起来在
收藏夹食品
之间存在一对多关系,您可以得到如下结果:

var query = _db.Person
               .Where(r=> 
                      r.FavouriteFoods.Any(t => t.FoodName == "Tomatoes"));
如果
Person
FavoriteFoods
之间没有关系,则可以从
FavoriteFoods
中获取不同的
PersonFK
,然后从
Person
表中获取记录

比如:

var query = _db.Person
               .Where(r=> _db.FavouriteFoods
                          .Where(r=> r.FoodName == "Tomatoes")
                          .Select(t=> t.PersonFK)
                          .Distinct()
                          .Contains(r.PersonPK));

看起来在
收藏夹食品
之间存在一对多关系,您可以得到如下结果:

var query = _db.Person
               .Where(r=> 
                      r.FavouriteFoods.Any(t => t.FoodName == "Tomatoes"));
如果
Person
FavoriteFoods
之间没有关系,则可以从
FavoriteFoods
中获取不同的
PersonFK
,然后从
Person
表中获取记录

比如:

var query = _db.Person
               .Where(r=> _db.FavouriteFoods
                          .Where(r=> r.FoodName == "Tomatoes")
                          .Select(t=> t.PersonFK)
                          .Distinct()
                          .Contains(r.PersonPK));

看起来在
收藏夹食品
之间存在一对多关系,您可以得到如下结果:

var query = _db.Person
               .Where(r=> 
                      r.FavouriteFoods.Any(t => t.FoodName == "Tomatoes"));
如果
Person
FavoriteFoods
之间没有关系,则可以从
FavoriteFoods
中获取不同的
PersonFK
,然后从
Person
表中获取记录

比如:

var query = _db.Person
               .Where(r=> _db.FavouriteFoods
                          .Where(r=> r.FoodName == "Tomatoes")
                          .Select(t=> t.PersonFK)
                          .Distinct()
                          .Contains(r.PersonPK));

看起来在
收藏夹食品
之间存在一对多关系,您可以得到如下结果:

var query = _db.Person
               .Where(r=> 
                      r.FavouriteFoods.Any(t => t.FoodName == "Tomatoes"));
如果
Person
FavoriteFoods
之间没有关系,则可以从
FavoriteFoods
中获取不同的
PersonFK
,然后从
Person
表中获取记录

比如:

var query = _db.Person
               .Where(r=> _db.FavouriteFoods
                          .Where(r=> r.FoodName == "Tomatoes")
                          .Select(t=> t.PersonFK)
                          .Distinct()
                          .Contains(r.PersonPK));