尝试在Linq查询中使用导航属性,但没有得到任何结果。不知道为什么。使用带导航属性的Linq
我在实体框架中使用SQL Server中的标准简单成员表。所以我把三个表格,AspNetUsers,AspNetRoles和AspNetUserRoles放到我的模型中(见下图)
是的,我知道我可以使用角色/标识功能,我只是用这些表来试用这个LINQ QUERY,这些表格很方便使用
无论如何,我的目标是使用导航属性来获取给定用户的角色。由于AspNetUserRoles没有主键,因此不会作为实体进入我的模型,所以这似乎是正确的选择。我试着使用建议这里提出:
Linq to entities navigation properties
下面的LINQ查询返回0结果
var result = (from r in context.AspNetRoles
where r.AspNetUsers.Any(u => u.Id == UserId)
select r).ToList();
return result;
想也许我需要使用包含扩展,所以我想这一点,也将返回0结果
var result = (from r in context.AspNetRoles
where r.AspNetUsers.Any(u => u.Id == UserId)
select r).Include("AspNetUsers").ToList();
return result;
我知道我在做什么错行:
where r.AspNetUsers.Any(u => u.Id == UserId)
因为如果我删除它,当然会得到结果,但不是特定用户的结果。
我试图按照这里的一个答案给出的建议是:
任何想法?
在此先感谢!
什么是你真正想干什么?给出一些上下文,最好是一个或两个示例模型。 – stybl
@stybl,编辑了这个问题。我希望这有助于澄清。谢谢! – xgp