2011-04-04 5 views
2

私はカスタムエンティティフレームワークプロバイダーで作業しています。このプロバイダーの既定の列値のサポートを追加する必要があります。ユーザーがエンティティ・フレームワーク・ウィザードを使用し、デフォルト値の列を含む表を選択すると、そのデフォルト値はエンティティ・デザイナに移入されません。カスタムEntity Frameworkプロバイダーの既定の列値のサポート

私は、この人口が正確にどこで行われるべきかについて少し失われています。私は適切な場所がDbXmlEnabledProviderManifestのGetEdmTypeメソッドのオーバーライドにあると信じていますが、これが正しい場所であれば、デフォルト値を設定する方法はわかりません。

誰かが、テーブルの列のデフォルト値をサポートするEFプロバイダを作成した経験がありますか?あなたはこれをどのように実装していますか?

答えて

0

私は自分でEFのデフォルト値で作業する必要はありませんでしたが、previous postの場合はthisになりました。お役に立てれば。

0

私はパーティーに少し遅れていますが、DbXmlEnabledProviderManifestはデフォルト値を追加するための適切な場所ではありません。プロバイダマニフェストは、データベースエンジン自体の機能を記述し、特定のデータベースおよび/またはテーブルではなく、このデータベースエンジンに固有の(一般的な)ものです。プロバイダマニフェストのデフォルト値は、指定された列に使用する値プロパティがユーザによって提供されていない場合にEFに通知します(たとえば、ユーザの小数点以下の桁に精度や精度を指定しない場合、この列に使用される縮尺や精度に使用されます)。 プロパティのデフォルト値を挿入するのが最も簡単な方法は、エンティティの列に対応するプロパティをコンストラクタのこの値に設定することです。この方法では、ユーザーはいつでも異なる値に設定できますが、そうでない場合は、デフォルト値がデータベースに送信されます。データベースのいくつかの列がエンティティに対応するプロパティを持たないコーナーケースのシナリオでは、行を追加するときにデータベースに挿入されるSSDLのProperty要素でDefaultValue属性を使用できます。これは、EFに挿入する必要がある値をEFに伝えることなく、EFがnullを挿入しようとするため、これらのプロパティがNULL可能でない場合に特に便利です。

関連する問題