Как вернуть numberOfMessages на пользователя с помощью Linq - PullRequest
0 голосов
/ 05 сентября 2011

У меня есть 2 таблицы:
Пользователи: Id, UserName, ...
Сообщения: Id, MsgText, IsRead, ....

Я хочу выбрать из этих таблиц то, что получаю количество сообщений на пользователя.
Например, я хочу получить результат в следующем формате:
UserID 1 NumberOfMessages 10
UserID 2 NumberOfMessages 4
UserID 3 NumberOfMessages 0
....

Как записать это в одном операторе linq.

Примечания: я использую структуру сущности codefirst и использую формат методов linq.

public partial class User
    {
        public long Id { get; set; }
        public string FullName { get; set; }
        public string UserName { get; set; }

         public virtual ICollection<Message> Messages { get; set; }
     }

     public partial class Message
    {
        public long Id { get; set; }
        public long SenderId { get; set; }
        public long ReceiverId { get; set; }
        public string MessageText { get; set; }
        public System.DateTime CreatedOn { get; set; }

        public virtual User Sender { get; set; }
        public virtual User Receiver { get; set; }
    }

1 Ответ

3 голосов
/ 05 сентября 2011
var result = dbContext.Users
    .Select(u => new 
                   {
                       UserID = u.Id, 
                       NumberOfMessages = u.Messages.Count()
                   })
    .ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...