zoukankan      html  css  js  c++  java
  • Linq join on 多条件

    复制代码
      var a = from m in DbContext.Set<T1>()
                        join q in DbContext.Set<T2>() 
                        on  new { m.ID, Phone=m.Phone1 } equals new { q.ID, Phone=q.Phone2 }
                        where m.Phone1 !=null
                        select new { m.ID, m.Phone1 };
                a = a.OrderBy(m => m.Phone1).Skip(2).Take(2);
    复制代码
    复制代码
    SELECT 
                [Extent1].[ID] AS [ID], 
                [Extent1].[Phone1] AS [Phone1], 
                1 AS [C1]
                FROM  [dbo].[T1] AS [Extent1]
                INNER JOIN [dbo].[T2] AS [Extent2] ON ([Extent1].[ID] = [Extent2].[ID]) AND (([Extent1].[Phone1] = [Extent2].[Phone2]) OR (([Extent1].[Phone1] IS NULL) AND ([Extent2].[Phone2] IS NULL)))
                WHERE [Extent1].[Phone1] IS NOT NULL
           
    复制代码

    所以linq为什么要这么写,看到生成的sql语句 就不言而喻了,因为linq多管闲事的将NULL给总结进去了

  • 相关阅读:
    解决死锁四大方式
    Windows内存管理简介:
    排序算法优劣
    排序
    HTTPs
    http和https的异同
    HTTP协议
    FTP与TFTP
    tomcat热部署
    开发心得体会
  • 原文地址:https://www.cnblogs.com/webenh/p/13162169.html
Copyright © 2011-2022 走看看