我一直在搜索,无法弄清楚如何将不存在的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(他们已为每个部分分配了所有用户组)。
答案 0 :(得分:1)
您需要使用All
运算符来确保集合中的每个成员都具有相同的值。我认为以下内容将得到你所需要的。
db.User
.Where(u => u.Accesses.All(a => a.UserGroup != null))
.Select(u => u.UserName)
在您的问题中,您说您只需要UserNames,因此我将返回限制为该值。