Linq To Sql 中使用lambda表达式实现Left Join

系统 2242 0

     网上也有很多有关Linq To Sql实现Left join的例子,不过使用lambda的不多,就算使用lambda的,也讲得很含糊,本来不需要讲太多废话的,硬要讲得高深莫测,显得好厉害。那些高深的东西在这里我也不讲了,也不会讲,直接上代码就知道了:

    当前有两个表,TUsers与TUserInfo,两者通过UserID关联,而TUsers表记录的是必须的数据,而TUserInfo记录是一些附件的数据,因此在TUserInfo中不一定有数据。使用Left Join获取数据:

    Lambda表达式如下:

TUsers.GroupJoin( 
    TUserInfo,  
    u => u.UserID,  
    ui => ui.UserID,  
    (u, ui) => new { u, ui }).Select(o => o) 

在LinqPad中查看结果,正常显示,查看生成的SQL语句如下:

 SELECT [t0].[UserID], [t0].[UserName], [t0].[RealName], [t0].[NickName], [t0].[Password], [t0].[RegTime], [t0].[LastLoginTime], [t0].[IsLocked], [t0].[RoleID], [t1].[UserID] AS [UserID2], [t1].[City], [t1].[Address], [t1].[Telephone], [t1].[Mobile], [t1].[ZipCode], [t1].[Gender], [t1].[Birthday], [t1].[QQ], [t1].[MSN], [t1].[Email], [t1].[HomePage], [t1].[Photo], [t1].[HeadPic], [t1].[PWQ], [t1].[PWA], [t1].[Motto], ( 
        SELECT COUNT(*) 
        FROM [TUserInfo] AS [t2] 
        WHERE [t0].[UserID] = [t2].[UserID] 
        ) AS [value] 
    FROM [TUser] AS [t0] 
    LEFT OUTER JOIN [TUserInfo] AS [t1] ON [t0].[UserID] = [t1].[UserID] 
    ORDER BY [t0].[UserID] 

在代码中测试也可通过;

Linq To Sql 中使用lambda表达式实现Left Join


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论