1

アプリケーションでMoney値オブジェクトを使用したい。Moneyデータ型の例をいくつか見つけました。しかし、EF4でそれらを使用する方法を理解することはできません。各金額をDecimal/CurrencyCodeペア(currencycodeは文字列-「USD」、「SEK」など)としてデータベースに保存したいと思います。complexTypeを作成しようとしましたが、機能させることができませんでした。これは可能ですか?

4

1 に答える 1

1

必ずできるはずです。あなたの複合型は、10進数と文字列のプロパティのペアです。それはまさに複合型が使用されるものです。アプローチに応じて、次のことを行う必要があります。

最初にデータベース:

最初にデータベースを定義します。テーブルには、新しい型を表す money 列と varchar 列が含まれます。データベースから EDMX モデルを更新すると、それがスカラー プロパティとしてエンティティに含まれます。これらのプロパティを削除する必要があります。次に、モデル ブラウザーに移動し、新しい複合型を作成します。エンティティに戻り、新しい複合型の複合プロパティを追加します。最後に、エンティティ マッピングに移動し、複合型をそれらのデータベース列にマップする必要があります。

これはMSDNの基本的なチュートリアルですが、スクリーンショットなどの基本的な詳細が含まれていない理由は不明です。これはchannel9からのビデオです。

最初にモデル化:

これはデータベース ファーストに似ていますが、データベースの作成とマッピングを行う必要はありません。それはあなたのために生成されます。

コードを最初に (EF 4.1):

複合型に対して別のクラスを作成し、それをエンティティのプロパティとして使用する必要があります。デフォルトでマッピングする必要はありません - マッピングは推測されるべきです。うまくいかない場合は、ComplextTypeAttribute注釈を使用するか、DbModelBuilder.

詳細を提供していただければ、使用する必要があるアプローチをさらに拡張できます。

于 2011-03-29T21:44:04.300 に答える