【问题标题】:LINQ request with LEFT JOIN return not expected result带有 LEFT JOIN 的 LINQ 请求返回非预期结果
【发布时间】:2012-02-14 11:54:16
【问题描述】:

请帮我将此查询转换为 Linq to Entities。

SELECT 
    d.`DepartmentId`,
    d.`ParentDepartmentId`,
    d.`LeftKey`,
    d.`RightKey`,
    udp.`UserId`,
    udp.`IsAllowed` 
FROM
    Departments AS d 
    LEFT JOIN UserDepartmentPermissions AS udp 
        ON udp.`DepartmentId` = d.`DepartmentId`
WHERE d.`IsExcluded` = 0

我正在尝试这个:

(from d in Departments
   join udp in UserDepartmentPermissions 
   on d.DepartmentId equals udp.DepartmentId into JoindedDepsUserPermissions
   from udp in JoindedDepsUserPermissions.DefaultIfEmpty()
   where d.IsExcluded == 0
   select  new
     {
      d.DepartmentId,
      d.ParentDepartmentId,
      d.LeftKey,
      d.RightKey,
      udp.UserId,
      udp.IsAllowed
     }).ToList();

但它不会返回相同的结果......

有人可以帮忙吗?

【问题讨论】:

    标签: .net entity-framework linq-to-entities


    【解决方案1】:

    试试

    var result = Deparments.Where(d => d.IsExcluded == 0)
                 .Select(d => new {
                       d.DepartmentId,
                       d.ParentDepartmentId,
                       d.LeftKey,
                       d.RightKey,
                       d.Permissions
                     });
    

    使用Department 中的导航属性访问权限

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-06
      • 1970-01-01
      • 2021-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多