Я начал использовать Massive, Роб Конери. Потрясающе маленький "ОРМ" и очень производительный. Однако у меня возникают проблемы со сравнениями System.DBNull в моих пустых полях.
Например, я хочу проверить, соответствует ли свойство другому свойству (в этом примере это длинный тип)
if (obj.MemberId == otherObj.MemberId) return true;
выдает исключение: Оператор '==' нельзя применить к операндам типа 'System.DBNull' и 'long' . В этом случае obj.MemberId был нулевым (точнее, DBNull).
Хорошо, поэтому я проверяю, является ли это DBNull.Value первым, верно? Как это:
if (obj.MemberId != DBNull.Value)
return obj.MemberId == otherObj.MemberId;
Круто, это работает, по крайней мере, когда obj.MemberId является DBNull, но когда это не так (содержит long), другое исключение: Оператор '! =' Не может быть применен к операндам типа 'long' и ' System.DBNull '.
Д.Б.Налл убивает меня. Как надежно проверить, не содержит ли обнуляемое свойство никаких данных?