0
我遇到了映射Roles
属性的问题,所以它对应于UserViewModel
。Linq把实体投影到IEnumerable中
var userManager = Request.GetOwinContext().GetUserManager<ApplicationUserManager>();
var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext()));
var users = (from u in userManager.Users
join r in roleManager.Roles
on u.Id equals r.Id
select new UserViewModel { Id = u.Id, Username = u.UserName, Password = u.PasswordHash, Roles = select new Role { Name = r.Name }});
public class UserViewModel
{
public string Id { get; set; }
public string Username { get; set; }
public string Password { get; set; }
public IEnumerable<Role> Roles { get; set; }
}
public class Role
{
public string Name { get; set; }
}
我该如何让Linq实体投影?
试过那种子查询,但它总是“指定的LINQ表达式包含引用查看与不同上下文相关的查询。“如在这种情况下。 – netdis
尝试以上更新 –
现在开始工作,直接在'var userManager'中指定它,从roleManager.Roles'中的'r中移除角色。在当前设置调用ToList是好的。 – netdis