之前一直用sql和拉姆达表达式,一直感觉linq不好用。用熟练了感觉期功能好强大,查询性能例外考究。这里讲讲基本用法。

内联查询:

            var list2 = (from a in db.Role where a.IsDel==true
                         join b in db.UserRole on a.Id equals b.RoleId where b.Id>0
                         where a.Id > 0 
                         select new
                         {
                             a.Id,
                             b.RoleId
                         }
                        ).ToList();

跟踪sql得到:

SELECT 
    [Extent1].[Id] AS [Id], 
    [Extent2].[RoleId] AS [RoleId]
    FROM  [dbo].[Role] AS [Extent1]
    INNER JOIN [dbo].[UserRole] AS [Extent2] ON [Extent1].[Id] = [Extent2].[RoleId]
    WHERE (1 = [Extent1].[IsDel]) AND ([Extent2].[Id] > 0) AND ([Extent1].[Id] > 0)
View Code

相关文章: