如何使用Linq返回每个用户的numberOfMessages
本文关键字:用户 numberOfMessages 何使用 Linq 返回 | 更新日期: 2023-09-27 18:07:54
我有两个表:
用户:Id, UserName,…
消息:Id, MsgText, IsRead,....
我想从这些表中选择每个用户的消息数。
例如,我想有这样的格式的结果:
UserID 1 NumberOfMessages 10
UserID 2 NumberOfMessages 4
UserID 3 NumberOfMessages 0
…
如何在一个linq语句中写这个
注意:我使用代码优先实体框架,并使用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; }
}
var result = dbContext.Users
.Select(u => new
{
UserID = u.Id,
NumberOfMessages = u.Messages.Count()
})
.ToList();