我有以下型号:
Party:
PartyID
Partyname
Entitlement:
EntitlementID
PartyID
ClaimValueID
ClaimValue:
ClaimValueID
ClaimValue
UserEntitlement:
UserID
EntitlementID
User:
UserID
UserName
Partys被分配了权利。权利可以授予用户。
授予一方的权利之一的权利要求为"管理员"
我需要找到所有以特定用户为管理员的用户。
例如。
用户拥有3个用户: 鲍勃,特里和六月
鲍勃拥有"管理员" #1; party 1"的权利;和"派对2"Terry持有"用户" #1; party 1"的权利;和#34;派对3"
June持有"第3方"
的"用户权利我希望最终的收藏只能容纳Bob和Terry。
我尝试了许多不同的Linq扩展查询,但我不确定我是否完全理解我的选择,包括等等。
我尝试了以下内容,以及我不再拥有的许多其他组合。
var usersA = db.UserEntitlements.Where(a => a.Entitlement.ClaimValue.Value == "Administrator" && a.UserID == 1)
.Select(b => b.Entitlement.Party)
.SelectMany(a => a.Entitlements)
.Include(b => b.UserEntitlements)
.SelectMany(a => a.UserEntitlements)
.Include(b => b.User);
实现这一目标的最佳方法是什么?
答案 0 :(得分:0)
当你有图形时,实体框架在第一个多对多关系处停止,否则它将返回完整的DB。你需要在两个查询中拆分它。