不存在的 MVC ViewModels 查询

MVC ViewModels Query with Not Exists

我一直在搜索,但无法弄清楚如何将不存在的 sql 查询转换为我的 mvc 查询。我以为我必须使用 .Any 或 .Contains,但它们似乎不起作用。现在我的视图模型查询如下所示:

viewModel.Accesses = db.Accesses
                 .Include(x => x.User)
                .Where(x => x.User.Uploaded == "NO").ToList();

我有两个 table 正在为此工作。一个用户 table 和一个访问 table。 User table 有 UserName、first、last 等。Access table 有 UserName、Section、UserGroup(admin、general 等)等。关系是一对多,例如,1 个用户可以分配给许多不同的用户组,但每个部分只有 1 个用户组。 Access table 的键是 UserName 和 Section。

但是,当它们加载到系统中时,每个部分的用户组都设置为 Null,因为尚未分配。

我要查询的是所有在其用户组字段中没有 NULL 值的用户名(他们已为每个部分分配了所有用户组)。

您需要使用 All 运算符来确保集合中的每个成员都具有相同的值。我认为以下内容将满足您的需求。

db.User
    .Where(u => u.Accesses.All(a => a.UserGroup != null))
    .Select(u => u.UserName)

在您的问题中,您说您只需要用户名,所以我将 return 限制为该值。