我的SQL Server数据库中有3个表Role
,Permission
和RolePermission
。RolePermission
由两列qRole
和qPermission
组成,它们是另两个表的外键。
因此,当 Entity Framework 为其创建模型时,它仅创建两个类并将RolePermission
的虚拟属性添加到每个角色和权限类中。
现在我需要从RolePermission
中选择列,所以我写了这段代码:
var rolePermission = PREntitiy.Roles.Where(r => r.qRole == TxtRole.Text)
.Select(p => p.Permissions);
这样做,我可以访问
rolePermission
表,但是我需要在单个查询中从角色表中检索一些列,并从rolePermission
中检索一些列,就像我们在SQL中的join语句中所做的那样。换句话说,我需要一个linq查询来访问角色表中的某些列,并访问
rolePermission
中的某些列,但是我只需要一个linq查询(如SQL中的join语句)就可以进行访问。谢谢
最佳答案
您正在寻找.Include()
语句
http://msdn.microsoft.com/en-us/data/jj574232.aspx
var role = PREntitiy.Roles.Include(r=>r.Permission).Where(r => r.qRole == TxtRole.Text)
我没有所有的类(class),所以Permission属性可能不正确。
您可以像通常一样使用点符号来访问每个类的属性:
var x = role.name;
var y = role.Permission.Name;
等等。