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或类似的东西。

任何帮助都将不胜感激。

LINQ SQL包含所有

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();

也许是这样。你也可以在第一部分中添加第二部分,进行一次调用,而不带来额外的数据,这是为了向你显示细分。