该方案是我想要获得少于2张照片的用户。
有两个表:
[Users] (UserId, UserName)
[UserPhotos] (PhotoId, PhotoName, UserId)
UserId是外键,但我不想使用像user.Photos这样的关联。
用户可能没有[UserPhotos]表中的照片。
如何使用Linq To Sql获取少于2张照片的List<User>
?
答案 0 :(得分:3)
也许这样:( 修复版本)
List<User> users = UserPhotos.GroupBy(i => i.UserId)
.Where(i => i.Count() > 2).Distinct()
.Join(Users, o => o.Key, i => i.UserId, (o, i) => i)
.ToList();
改变问题的解决方案:
List<User> result = Users.Where(user => !UserPhotos.GroupBy(i => i.UserId)
.Where(i => i.Count() >= 2).Distinct()
.Any(i => i.Key == user.UserId)).ToList();
答案 1 :(得分:1)
这有什么问题?
var query = from u in dbContext.Users
where u.Photos.Count > 2
select u;
到目前为止这是最简单的 - 你为什么要特别不使用这种方法?