我的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)
我没有你的所有类,所以Permission属性可能不正确.
您可以使用正常的点符号访问每个类的属性:
var x = role.name; var y = role.Permission.Name;
等等