我有以下表格:
每个 CoffeeLover 都有多个与他相关的 FavouriteCoffeeRecords。我想使用 LINQ 查询获取给定 CoffeeLoverID 的 CoffeeNames 列表。
我想我需要使用Intersect()
方法。
我试过这样:
using(DataContext db = new DataContext())
{
var favCofRecords = db.FavouriteCoffeesRecords.Where(q => q.CoffeeLover.CoffeeLoverID == 1);
var favCoffees = db.Coffees.Select(q => q.CoffeeID).Intersect(favCofRecords.Select(q2 => q2.CoffeeID));
}
但未能得到正确的结果。
最佳答案
你的想法太复杂了。您想要与给定 CoffeeLoverID
存在关系的咖啡名称:
var results =
from c in db.Coffees
where c.FavouriteCoffeesRecords.Any(rec => rec.CoffeeLoverID == someID)
select c.Name;
这实际上是我在散文中描述的查询。
当您想要查询某个表中的列时,请在 from
子句中从该表开始并对其进行过滤。
关于c# - LINQ intersect() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25344119/