zoukankan      html  css  js  c++  java
  • EF空字段使用contains查询的解决办法

    在用entityframework访问数据库时通常使用contains来实现模糊查询,用法如下:

    var userlist= (IEnumerable<User>)data.Where(t => t.Name.Contains(querystring));

    如果字段HostName允许为空且在数据库中存在空值(NULL),使用contains会出现常见的报错:

    数据库中存在的空字段(null)没有实例化。

    解决方法:

    使用三目运算符,首先判断该字段是否为空,是则返回false,否则执行contains

    原理:

    Contains关键字的工作原理是返回一个bool值,当满足contains条件时返回true,否则返回false,以此来决定本条数据是否要获取,所以判断字段为空就直接用false来返回来跳过执行contains

    用法如下:

    var userlist= data.Where(t => (string.IsNullOrWhiteSpace(t.Name) ? false : t.Name.Contains(querystring));

     或者

    var userlist= data.Where(t => t.Name !=null && t.Name.Contains(querystring));

    推荐第二种方式。

  • 相关阅读:
    Oracle中Lpad函数和Rpad函数的用法
    SQL中on条件与where条件的区别
    安装sqlServer
    springboot注解加深
    springcloud父项工程pom
    雪花算法
    docker 创建mysql容器
    docker入门
    restful接口规范(安全与幂等)
    mysql
  • 原文地址:https://www.cnblogs.com/youmingkuang/p/14768432.html
Copyright © 2011-2022 走看看