我有两张桌子:
用户: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; }
}
答案 0 :(得分:3)
var result = dbContext.Users
.Select(u => new
{
UserID = u.Id,
NumberOfMessages = u.Messages.Count()
})
.ToList();