RobConeryのMassiveを使い始めました。素晴らしい小さな「ORM」と非常にパフォーマンスが良い。ただし、null許容フィールドでの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は私を殺しています。null許容プロパティにデータが含まれていないかどうかを確実に確認するにはどうすればよいですか?