我的SQL Server数据库中有3个表RolePermissionRolePermission
RolePermission由两列qRoleqPermission组成,它们是另两个表的外键。

因此,当 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;

等等。

09-26 03:40