MVC ViewModels查询不存在

时间:2015-04-17 15:23:45

标签: c# asp.net-mvc linq viewmodel

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

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

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

但是,当它们加载到系统中时,每个Section的UserGroup设置为Null,因为它尚未分配。

我想要查询的是所有在任何UserGroup字段中都没有NULL值的UserNames(他们已为每个部分分配了所有用户组)。

1 个答案:

答案 0 :(得分:1)

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

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

在您的问题中,您说您只需要UserNames,因此我将返回限制为该值。