SQLServer数据表中有两列可空列,均为数值类型,同时在数据库中录入测试数据,Age和Height列均部分有值。
使用SqlSugar的DbFirst功能生成数据库表类,其中Age、Height属性均为可空类型。
开始使用的SqlSugar版本较低,运行以下代码时会抛异常,提示语法错误,如果将where函数中的r.Age.HasValue去掉则不会出错。
csharp
List<AppUsers> users=db.Queryable<AppUsers>().Where(r=>!r.Age.HasValue || r.Age>20).Select(r=>new AppUsers { UserName=r.UserName}).ToList();
将SqlSugar重新安装到最新版本(5.1.4.X),运行上述代码则不会出错。
暂时搞不清楚是数据有问题还是使用SqlSugar方式不对造成的。