1
EF 4.1コードを使用する場合、まずユーザーのスキーマにユーザー定義データ型を作成できますか?EF 4.1コードを使用するときにユーザー定義データ型を作成することはできますか?
EF 4.1コードを使用する場合、まずユーザーのスキーマにユーザー定義データ型を作成できますか?EF 4.1コードを使用するときにユーザー定義データ型を作成することはできますか?
簡易返答はありません。
長い答え:ユーザー定義型を使用しようとすると
現在のEFの実装では、複数の問題につながる:
Seed
(トリガーやインデックスなどの他のデータベース構造体でよく使用される)で定義することはできません。この作業を行うには、IDatabaseInitializer
を実装し、データベースの作成とテーブルの作成を個別に行う必要があるため、完全な新しい初期化子を作成する必要があります。 Hereは、データベース初期化子を作成する方法の例です(これは、アプリケーションを実行するたびにテーブルを再作成します)。このロジックは、EFにおそらく内部で行われるので、スケッチからモデルの変更を反映ColumnAttribute
とHasColumnType
のどちらもカスタム型を受け入れません。したがって、マッピングでは基本的なプリミティブSQL型を指定する必要があり、これらのカスタム型はEFによって生成されるテーブルDDLで使用されます。したがって、カスタムデータベースイニシャライザのポストプロセスがSQLスクリプトを生成し、基本タイプをカスタムタイプ(実際には醜い解決策)に置き換えない限り、テーブルはそれらを使用しません。
はいそれは可能ですが、[ファイル名を指定して実行時にEntity Frameworkのモデルを変更する]この投稿にllokている[1] [1]:http://stackoverflow.com/questions/4019895/実行時エンティティフレームワークモデルの変更 – DeveloperX
@DeveloperXこの質問は、ユーザー定義のデータ型ではなくユーザー定義のフィールドに関するものです。 – Eranga