c# - LINQ intersect() 方法

标签 c# .net linq

我有以下表格:

enter image description here

每个 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/

相关文章:

c# - Windows Phone 7 和上传照片到 Facebook 墙

c# - 自定义搜索图像 child 安全

c# - 如何将二维数组中的一行值复制到一维数组中?

c# - ASP.net 中的字符串比较 (C#)

c# - 将字典分成更小的部分

c# - 使用 linq C# 将列表转换为嵌套字典

c# - 根据另一个集合对集合进行排序

c# - 使用多个事实或单一理论

c# - List<T> 项删除问题

c# - 具有更高权限的.NET Start Process