EF4でPOCO(プロキシなし)を使用しています。データベースでEF4 null不可能な値へのnull可能な10進数の列のマッピング
、私はこのNULL可能10進数の列があります。私のPOCOオン
<Property Name="AMOUNT" Type="decimal" Precision="12" Scale="2" />
を、私はこのnull非許容値のプロパティを持っている:
public decimal Amount { get; set; }
データベース内の値がnull
ある場合プロパティを0
に設定します。どうすればこれを達成できますか?私はここにNullable
プロパティを持っていないほうがいいでしょう。さもなければ、ビジネスロジックをGetValueOrDefault()
コードで汚染する必要があります。
[このquestionは私が求めていたもののように思えたが、私はそれが本当に答えたかわからない。]
"EDMXの場合、醜い回避策が1つあります。"これは醜い回避策ではありませんが、一般的な方法です。エンティティフレームワークには多くの制限があり、クラスファイルは意図的に部分的に生成されるため、必要なものを追加できます。ところで、純粋なデータクラス(EFで生成されたものと同様のロジックなし)を作成することは、反パターンです。 – kubal5003
@kubal:これは回避策です。なぜなら、このマッピングロジックはORM自体の一部でなければならないからです。また、あなたの反パターンはドメイン駆動設計の世界にのみ存在し、貧血ドメインモデルと呼ばれています。ドメイン駆動設計に従わない場合は、そのアンチパターンはありません。 –
あなたが正しいですが、私の指摘は、EFは意図的に醜いと見なすことができない部分的なクラスをサポートしているからです。しかし、デザイン全体を見れば、これはエレガントなやり方ではありません。 – kubal5003