LINQ SQL包含所有
本文关键字:包含所 SQL LINQ | 更新日期: 2023-09-27 17:51:00
我有一个列表,其中包含一些包ID。
List<int> mustHavePackages = GetMustHavePackages();
和一个数据库表
public class Table
{
public int UserID;
public int PackageID;
}
我想从数据库中获取那些拥有mustHavePackages
列表中所有包的用户。
目前,我只实现了获取所有用户,这些用户从mustHavePackages
列表中至少有一个包。
List<int> users =
(from t in db.Table
where mustHavePackages.Contains(t.PackageID)
select t.UserID).ToList();
现在我正在寻找类似ContainsAll或类似的东西。
任何帮助都将不胜感激。
var temp=
(from t in db.Table
group t by t.UserId into g
select new {UserId = g.Key, PackageIds = g.Select(gg=>gg.PackageId)}).ToList();
var users = (from t in temp
where !mustHavePackages.Except(t.PackageIds).Any()
select t.UserId).ToList();
也许是这样。你也可以在第一部分中添加第二部分,进行一次调用,而不带来额外的数据,这是为了向你显示细分。