美文网首页一步一坑
关于linq语句与sql语句查询条件==null处理的奇妙现象

关于linq语句与sql语句查询条件==null处理的奇妙现象

作者: 易兒善 | 来源:发表于2017-12-18 09:58 被阅读6次

    正常情况下

    在sql语句中我们要查找一个字段为null的数据,我们通常使用的方法是

    select * from 表名   where 字段名 is null
    

    在linq语句中我们可以直接使用

    表.Where(m=>m.列 == null)
    
    //转换后的sql语句便是
    SELECT  字段……
    FROM 表 AS [t0]
    WHERE [t0].列 IS NULL
    

    特殊情况下

    我们像如下这样写linq查询

        int? a = null;
        
        表.Where(m=>m.列 == a);
    // 转换成的sql语句便是这样了
    
    DECLARE @p0 Int = null
    SELECT 字段……
    FROM 表 AS [t0]
    WHERE [t0].列 = @p0
    
    

    这样写的sql是查找不出来任何数据的。那么我们这样写就可以了。会根据a的不同值转换成不同的sql语句。

         var query = a.HasValue? 表.Where(m=>m.列 == a)
         :表.Where(m=>m.列 == null) ;
    

    相关文章

      网友评论

        本文标题:关于linq语句与sql语句查询条件==null处理的奇妙现象

        本文链接:https://www.haomeiwen.com/subject/arepwxtx.html