主キーの欠落による EF データ モデルの除外
既存のデータベースを Entity Framework (EF) 4.0 に統合する場合、一部のテーブルで主キーが欠落していることがよくあります。この問題は、新しいエンティティ データ モデルを作成するときに発生し、主キーが見つからないためテーブルが除外されることを示すエラー メッセージが表示されます。
この問題を解決するには、影響を受けるテーブルに物理主キーを追加する必要があると一般に考えられています。ただし、スキーマを変更せずにこれらのテーブルを使用できるようにする回避策があります。
Tillito が提案したように、この回避策には、新しい SELECT ステートメントで問題のあるビューの SELECT ステートメントを変更することが含まれます。このように元の SELECT ステートメントをラップすると、ISNULL 関数を使用して主キーとして使用する列を指定できます。代わりに、NULLIF 関数を使用して、列が主キーとして指定されるのを防ぐことができます。
例:
次の例を考えてみましょう:
<code class="language-sql">SELECT ISNULL(MyPrimaryID,-999) MyPrimaryID, NULLIF(AnotherProperty,'') AnotherProperty FROM ( ... ) AS temp</code>
この例では、ISNULL 関数は EF に "MyPrimaryID" を主キーとして認識させる一方、NULLIF 関数は "AnotherProperty" が主キーとみなされないことを保証します。
この手法を適用すると、データベース スキーマを変更する必要がなくなり、既存のテーブルを EF データ モデルにシームレスに統合できるため、物理主キーを変更せずにデータ操作が可能になります。
以上が物理主キーを使用せずに EF 4.0 データ モデルを統合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。