Linq-To-Sql用户的计数书
问题描述:
我是linq的新手,我有一个简单的问题。 我必须统计有多少书有用户。 我知道它很容易,但我不能这样做。Linq-To-Sql用户的计数书
//数据库
public List<UserViewModel> GetAllUsers()
{
var result = from u in databaseContext.User
select new UserViewModel
{
UserId = u.UserId,
LastName = u.LastName,
FirstName = u.FirstName,
BirthDate = u.BirthDate,
Email = u.Email,
Phone = u.Phone,
AddDate = u.AddDate,
ModifiedDate = u.ModifiedDate,
IsActive = u.IsActive,
};
return result.ToList();
}
如何做到这一点?
答
在你的模型中,似乎每一个借款都只有一本书与它相关联。如果是这样的话和书不能采取一次以上(这也应该是正确的),那么所有你需要做的是:
int count = context.Users.First(x=>x.UserId = 1).Borrow.Count();
通过这种方式,你可以指望一个给定的用户假定所有借用他们都与一本书有关。
如果两个借阅可以有相同的书比你应该稍微重写此查询到这一点:
int count = db.Borrow.Where(x => x.UserID== 1).Select(x => x.BookId).Distinct().Count();
这样你会得到仅从用户用借来的1
ID唯一的书仅计数未返回使用这种独特的书:
int count = db.Borrow.Where(x => x.UserID== 1 && x.IsReturned == false).Select(x => x.BookId).Distinct().Count();
+0
非常感谢你!另一个问题。如果我想查找列表中每个用户的书籍数量?不适用于一个号码UserId – user1547855 2012-07-25 08:44:52
你想未归还的书籍('IsReturned = FALSE'),或者所有的书用户曾经借?或在日期范围内借阅的书籍数量? – Jamiec 2012-07-24 07:33:27
“有多少书有用户”==>您的书籍环境在哪里,它看起来如何? (我无法看到任何关于你的链接) – Matten 2012-07-24 07:33:29
嗨,欢迎来到SO!你有什么尝试过自己?你显然有一些代码的问题,否则你不会问这个问题,对吧? =) – 2012-07-24 07:51:17