[英]How can I group by a navigation property member in linq to sql?
我抱着三個表Users
Groups
和他們的協會, UserGroups
在布置這個小提琴:
我正在嘗試使用linq2sql在小提琴中的查詢中顯示用戶組中的最高級別。
但是,EntityFramework會混淆連接表TblUserGroup
,而只是為我提供導航屬性: TblGroups.Users
或User.TblGroups
到目前為止,這是我整理的內容,但是Linqpad告訴我它無法執行:
var maxGroup = from ua in ctx.TblGroups
group ua by ua.TblUsers.Select(s=>s.UserId)
into g
select new
{
UserId= g.Key,
MaxLevel = g.Max(s => s.GroupLevel)
};
看來您可以這樣做:
var result = users.Select(u => new
{
UserId = u.Id,
MaxLevel = u.Groups.Max(g => g.GroupLevel)
});
具有:
class User
{
public int UserId { get; set; }
public string UserName { get;set; }
public List<Group> Groups { get; set; }
}
class Group
{
public int GroupId { get; set; }
public string GroupName { get; set; }
public int GroupLevel { get; set; }
public List<User> Users { get; set; }
}
對你起作用嗎?
var maxGroup = ctx.TblUsers
.Where(u => u.TblUserGroups != null)
.Select(u => new
{
UserId = u.UserId,
MaxGroupLevel = u.TblUserGroups.TblGroups.Max(g => g.GroupLevel)
}
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.