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

linq to sql 实现左(右)连接,那个方法是对的,该怎么处理

2012-03-17 
linq to sql 实现左(右)连接,那个方法是对的varquery2 from tb0 in db.table_0join tb1 in db.table_1on

linq to sql 实现左(右)连接,那个方法是对的
var query2 = from tb0 in db.table_0
  join tb1 in db.table_1 on table_0.关联键 equals table_1.关联键
  into all
  from tb2 in all.DefaultIfEmpty()
  select new { ... };
下面是另一方法。。。。。。

左连接left outer join,除了满足连接条件的行,还包括左表的所有行。
右连接right outer join,除了满足连接条件的行,还包括右表的所有行。
eg:var q = 
  from e in db.Employees 
  join o in db.Orders on e equals o.Employee into ords 
  select new 
  { 
  e.FirstName, 
  e.LastName, 
  Order = ords
  }; 
说明:以Employees 左表,Orders右表,Orders 表中为空时,用null值填充。Join的结果重命名 ords,Order是一个集合。 
  虽然没有left关键字,但是实现的查询结果是一样的。

[解决办法]
直接join是内连接。
[解决办法]
它产生的sql语句是什么呢?
[解决办法]

C# code
左连接:var LeftJoin = from emp in ListOfEmployeesjoin dept in ListOfDepartmenton emp.DeptID equals dept.ID into JoinedEmpDept from dept in JoinedEmpDept.DefaultIfEmpty()select new                          {EmployeeName = emp.Name,DepartmentName = dept != null ? dept.Name : null                          }; 右连接:var RightJoin = from dept in ListOfDepartmentjoin employee in ListOfEmployeeson dept.ID equals employee.DeptID into joinDeptEmpfrom employee in joinDeptEmp.DefaultIfEmpty()select new                            {EmployeeName = employee != null ? employee.Name : null,DepartmentName = dept.Name};
[解决办法]
六楼 q107770540 正解
[解决办法]
linq to sql 没有什么 右连接吧!
两个表的顺序换一下,效果是有了, 还是左连接啊

热点排行