首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > CAD教程 >

Silverlight 左连接,自定义实体有关问题

2012-09-09 
Silverlight 左连接,自定义实体问题这里多出一个字段,怎样自定义一个实体。代码我是这样写的,另外新建了一

Silverlight 左连接,自定义实体问题

这里多出一个字段,怎样自定义一个实体。代码我是这样写的,另外新建了一个实体类,但是在页面访问不到这个方法

 public IQueryable<RoleAndMyRoleModel> GetRoleAndMyRole(string userId)
  {
  return (from r in ObjectContext.T_Role
  from I in
  (from r2 in ObjectContext.T_Role
  join ur in ObjectContext.T_User_Role on r2.ROLE_CODE equals ur.ROLE_CODE
  join u in ObjectContext.T_UserBase on ur.UserID equals u.UserID
  select new { IRoleCode = r2.ROLE_CODE })
  select new RoleAndMyRoleModel
  {
  Role_Code = r.ROLE_CODE,
  Role_Name = r.ROLE_NAME,
  Role_Desc = r.ROLE_DESC,
  IRoleCode = I.IRoleCode
  }).AsQueryable<RoleAndMyRoleModel>();
  }

想要实现的SQL语句是这样的,我该怎样改呢。求各位大神指导!

SELECT *
FROM T_Role [Role]  
LEFT JOIN 
(
SELECT R.ROLE_CODE AS IRoleCode FROM T_Role AS R 
JOIN T_User_Role AS UR ON R.ROLE_CODE=UR.ROLE_CODE
JOIN T_UserBase AS U ON UR.UserID=U.UserID AND U.UserID=@UserID
 
) I ON [Role].ROLE_CODE=I.IRoleCode

[解决办法]
手写,仅供参考:
var result=from u in IRoleCode 
join n in T_User_Role on u.ROLE_CODE equals n.ROLE_CODE
join m in T_UserBase on new n.UserID equals m.UserID into g
from p in g.DefaultIfEmpty()
join q in T_Role on p.IRoleCode equals q.ROLE_CODE into s
from x in s.DefaultIfEmpty()
where x.UserID=UserID
select new RoleAndMyRoleModel
{
Role_Code = x.ROLE_CODE,
Role_Name = x.ROLE_NAME,
Role_Desc = x.ROLE_DESC,
IRoleCode = x.IRoleCode
};

热点排行