アプリケーションでMoney値オブジェクトを使用したい。Moneyデータ型の例をいくつか見つけました。しかし、EF4でそれらを使用する方法を理解することはできません。各金額をDecimal/CurrencyCodeペア(currencycodeは文字列-「USD」、「SEK」など)としてデータベースに保存したいと思います。complexTypeを作成しようとしましたが、機能させることができませんでした。これは可能ですか?
1 に答える
必ずできるはずです。あなたの複合型は、10進数と文字列のプロパティのペアです。それはまさに複合型が使用されるものです。アプローチに応じて、次のことを行う必要があります。
最初にデータベース:
最初にデータベースを定義します。テーブルには、新しい型を表す money 列と varchar 列が含まれます。データベースから EDMX モデルを更新すると、それがスカラー プロパティとしてエンティティに含まれます。これらのプロパティを削除する必要があります。次に、モデル ブラウザーに移動し、新しい複合型を作成します。エンティティに戻り、新しい複合型の複合プロパティを追加します。最後に、エンティティ マッピングに移動し、複合型をそれらのデータベース列にマップする必要があります。
これはMSDNの基本的なチュートリアルですが、スクリーンショットなどの基本的な詳細が含まれていない理由は不明です。これはchannel9からのビデオです。
最初にモデル化:
これはデータベース ファーストに似ていますが、データベースの作成とマッピングを行う必要はありません。それはあなたのために生成されます。
コードを最初に (EF 4.1):
複合型に対して別のクラスを作成し、それをエンティティのプロパティとして使用する必要があります。デフォルトでマッピングする必要はありません - マッピングは推測されるべきです。うまくいかない場合は、ComplextTypeAttribute
注釈を使用するか、DbModelBuilder
.
詳細を提供していただければ、使用する必要があるアプローチをさらに拡張できます。