我已经开始使用 Rob Conery 的 Massive。很棒的小“ORM”,性能非常好。但是,我在可空字段上遇到了 System.DBNull 比较的问题。
例如,我想检查一个属性是否与另一个属性匹配(在本例中为 long 类型)
if (obj.MemberId == otherObj.MemberId) return true;
抛出异常:运算符 '==' 不能应用于 'System.DBNull' 和 'long' 类型的操作数。在这种情况下,obj.MemberId 为 null(更具体地说,是 DBNull)。
好的,所以我首先检查它是否是 DBNull.Value 对吗?像这样:
if (obj.MemberId != DBNull.Value)
return obj.MemberId == otherObj.MemberId;
很酷,至少在 obj.MemberId 是 DBNull 时有效,但当它不是(包含 long)时,另一个例外:运算符 '!=' 不能应用于 'long' 和 'System.DBNull' 类型的操作数。
DBNull 正在杀死我。如何可靠地检查可空属性是否不包含数据?