-1

我是 linq 的新手,我有一个简单的问题。我必须计算有多少本书有用户。我知道这很容易,但我做不到。

//数据库

在此处输入图像描述

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();
}

这个怎么做?

4

1 回答 1

0

在您的模型中,似乎每个 Borrow 都有一本书与之关联。如果是这种情况并且书籍不能多次使用(这也应该是正确的),那么您需要做的就是:

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();

这样,您将仅获得从 id 为 1 的用户借来的唯一书籍。

要仅计算未归还的唯一书籍,请使用以下命令:

int count = db.Borrow.Where(x => x.UserID== 1 && x.IsReturned == false).Select(x => x.BookId).Distinct().Count();
于 2012-07-24T08:14:04.737 回答