该查询将仅返回Active = true和Exempt = false的所有记录。它也应该返回Active = true和Exempt IS NULL的所有记录。我猜.IsNotEqualTo不能与任何具有空值的记录进行比较?是否可以解决此问题而不设置默认值?

UserCollection ActiveUsersNotExempt = new UserCollection();
ActiveUsersNotExempt = DB.Select().From<User>()
                .Where(User.Columns.Active).IsEqualTo(true)
                .And(User.Columns.Exempt).IsNotEqualTo(true)
                .ExecuteAsCollection<UserCollection>();`

最佳答案

如下使用AndExpression来获取嵌套约束(豁免不为true或为null):

UserCollection ActiveUsersNotExempt = DB.Select().From<User>()
  .Where(User.Columns.Active).IsEqualTo(true)
  .AndExpression(User.Columns.Exempt).IsNotEqualTo(true)
  .Or(User.Columns.Exempt).IsNull()
  .ExecuteAsCollection<UserCollection>();`

关于c# - .IsNotEqualTo不比较Null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/916596/

10-10 14:06