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

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

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

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

    Object reference not set to an instance of an object.

    (未将对象引用到对象的实例. )

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

    解决方法:

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

    原理:

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

    用法如下:

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

  • 相关阅读:
    python数字
    Python数据类型
    Python表达式与运算符
    正则表达式
    计划任务
    nfs服务
    nginx反向代理+负载均衡
    samba安装测试
    自定义centos7 yum仓库
    token过期时间
  • 原文地址:https://www.cnblogs.com/XCCU-2015/p/5577198.html
Copyright © 2011-2022 走看看