//自连接查询角色信息及其父角色
var result = from r1 in eDataContext.Role
join r2 in eDataContext.Role on r1.ParentRoleID equals r2.RoleID
where r1.IsDeleted == false
select new { RoleID = r1.RoleID, ParentRoleID = r1.ParentRoleID, RoleName = r1.RoleName, RoleDesc = r1.RoleDesc, ParentRoleName = r2.RoleName };
//联合查询(自连接中嵌子查询)没授过该角色的角色信息及其父角色
var result = from r1 in eDataContext.Role
join r2 in eDataContext.Role on r1.ParentRoleID equals r2.RoleID
where !(from o in eDataContext.SecondaryRole select o.RoleID).Contains(r1.RoleID)
&& r1.IsDeleted == false
select new { RoleID = r1.RoleID, ParentRoleID = r1.ParentRoleID, RoleName = r1.RoleName, RoleDesc = r1.RoleDesc, ParentRoleName = r2.RoleName };