私のORMにEFv4を使用していますが、ヌル入力不可とマークされた複数のカラムを持つテーブルにレコードを挿入しようとしました(空の文字列はnvarchar
列)。問題は、EFがこの列のデフォルト値を取得せず、エンティティのインスタンスを作成していくつかの文字列プロパティを残したときnull
これをDBテーブルに保存しようとすると例外が発生します(制約設定をデータセット)。エンティティ・フレームワークがSQL Server DBのNULL以外のカラムに対して作成する
したがって空の文字列の既定値はSQL Server Management Studio内で機能しますが(列emtpyを残すと自動的にemtpy文字列が挿入されます)、EF内では機能しません。
uniqueidentifier
プライマリキーの列を実際に気づいたことがありますが、列のデフォルトに関する情報がないため、列が何であってもEFモデルに入りません。
誰かがこれに気づいた?任意の回避策?
さらに、最新のEF機能CTPでこれを改善した点はありますか?
私は、これはええ、それかもしれないと思います。 DBにnullを許可することに戻すだけで意味がありますか?私はそれを見ているので、エンティティのすべての値を初期化しなければならないという苦労があります。いくつかのエンティティには数十の文字列フィールドがあります。 – mare
@Mare - 私はいいえと言います。しかし、それは主に私たちのDBで可能な限りヌル可能な列を避けようとしているからです。エンティティの各プロパティを調べる効率的なルーチンを書くことができます。データ型がstringの場合は、nullをString.Emptyに置き換えます。私たちはこれをすると思います。 –