【发布时间】:2016-08-03 13:57:52
【问题描述】:
我担心我一定遗漏了一些简单的东西,但是当我执行时:
var results = UserManager.Users.Where(u => u.mgr == appUser.org || appUser.org == "corp");
我得到了符合我要求的 IQueryable ApplicationUser 集合... 除了...集合中的每个 ApplicationUser 都有一个 Roles 属性(集合),它只包括 UserId 和 RoleId 而不是角色的名称。我相信在这个 linq 查询中添加一个 .Include("???") 应该允许我将角色的名称带回每个用户......但我找不到正确的表达式来到达那里。
如何检索分配给集合中每个用户的角色名称?
【问题讨论】:
-
如果您想使用
.Include(),请尝试以下方法之一。您可以将.Include(x => x.Roles)用作 lambda 表达式 - 您将需要using System.Data.Entity。或者,您可以执行.Include(nameof(ApplicationUser.Roles))(如果使用 C# 6.0 - 其中ApplicationUser.Roles是要包含的Roles的类和属性)。两者都会Include相同的属性。从表面上看,我猜您在上下文中使用带有Users的EF 作为DbSet<T>属性,对吧?您的Roles属性是导航属性吗?
标签: c# linq asp.net-identity