2011-10-27 8 views
0

ほとんどの場合、テーブル内のフィールドをプロパティにマッピングするか、条件付きマッピングを使用してマップできますが、両方をマッピングすることはできません。条件がIs NotNullに設定されている場合のみ例外です。これは、列にマップすることもできるためです。条件付きマッピングについてよく分からないもの

a)これは、DB列を1回だけマップできる理由です。つまり、フィールドにプロパティマッピングと条件付きマッピングの両方があることが許可されている場合、プロパティマッピングによってEFにすべてのテーブル行条件付きマッピングでは、条件を満たす行のみを取得するようEFに指示します。

b)私の推論がの場合、が正しい場合、条件がIs NotNullに設定されていると、両方のマッピングがフィールドに許可されているのはなぜですか?それはなぜ紛争を起こさないでしょうか?

ありがとう条件付き

答えて

2

マッピングは、それはあなたのモデルで、その後の変更を必要とするためNOTNULLは特別な意味を持っています。モデル内のマップされたプロパティはnullにできません。したがって、データベースの列はNULL可能です。マッピング条件はすべてのレコードをNULL値でフィルタリングし、プロパティは常にnull以外の値を持つレコードのみを受け取ります。また、プロパティにnullを割り当てることもできません。

値の等しい共通条件の場合、この特殊な動作はできません。

+0

hi Ladislav。私の愚かさを許してください、私は私の2つの質問に対する答えを(あなたの返信で)見つけられませんでした。あなたの返事に答えが潜んでいる場合は、それを言い換えてください(別名ダムダウン)? – user702769

+1

申し訳ありませんが、私はそれを明確にするために言い換えることができません。 Is NotNull条件で試してみて、関連する列もマップしてください。違いが分かるはずです。エンティティのプロパティがnullableであってはならないため、条件付きマッピングはフィルタリングの第1レベルであり、マップされたプロパティのクエリフィルタリングはNotNullと競合しない追加の条件にすぎないため、NotNull条件を使用すると競合することはありません。 –

+0

"...マッピングされたプロパティのクエリフィルタリングは、NotNullと競合できない追加の条件にすぎません。 Is Null条件が使用されているときに、そのロジックによって列にマップすることもできませんか? – user702769

関連する問題