Linq to sql 中如何进行 left join
2011-11-23 11:22
239 查看
例子:
var query =
from r in db.Roles
join sr in
(
from ss in db.StaffInRoles
where ss.StaffId == staffId
select ss
)
on r.Id equals sr.RoleId
into x
from y in x.DefaultIfEmpty()
select new RoleInfo
{
RoleId = r.Id,
RoleName = r.Name,
IsSet = y != null
};
注意这里最后可以通过 y != null 来判断右值是否为空。
这个 Linq to sql 语句生成的对应 SQL 为:
exec sp_executesql N'SELECT [t0].[Id] AS [RoleId], [t0].[Name] AS [RoleName],
(CASE
WHEN [t2].[test] IS NOT NULL THEN 1
ELSE 0
END) AS [IsSet]
FROM [Role] AS [t0]
LEFT OUTER JOIN (
SELECT 1 AS [test], [t1].[StaffId], [t1].[RoleId]
FROM [StaffInRole] AS [t1]
) AS [t2] ON ([t0].[Id] = [t2].[RoleId]) AND ([t2].[StaffId] = @p0)',N'@p0 int',@p0=1
相关文章推荐
- Linq to sql 中如何进行 left join
- Linq to sql 中如何进行 left join
- Linq to sql 中如何进行 left join
- Linq to sql 中如何进行 left join
- Linq to sql 中如何进行 left join
- Linq to sql 中如何进行 left join
- Linq to sql 中如何进行 left join
- LINQ TO SQL 如何进行增删改查
- 在LinqToSql中如何应用Repository模式
- 在Linq to Sql中管理并发更新时的冲突(3):使用记录的时间戳进行检测 推荐
- 如何在项目中应用LinqToSql数据库事务
- C#操作LINQ to SQL组件进行数据库建模的基本教程
- Linq to SQL 类型的对象图包含循环,如果禁用引用跟踪,择无法对其进行序列化。
- Linq To Sql 中使用lambda表达式实现Left Join
- Linq to Sql Having Count(*)如何写?
- Silverlight 3中如何创建Linq to SQL项目实现MS-SQL数据的操作
- LINQ : 对LINQ TO SQL 查询进行编译
- Linq To SQL LEFT OUTER JOIN (Left Join)
- Silverlight 2 (beta1)数据操作(5)——使用LINQ to SQL进行数据CRUD操作(上)
- LINQ : 如何在LINQ to SQL中删除数据库中的行