1. ホーム
  2. .net

[解決済み] Entity Framework: 主キーがないテーブル

2022-04-29 01:09:10

質問

既存のDBがあり、それを使って新しいアプリを作りたい。 EF4.0

いくつかのテーブルには主キーが定義されていないため、新しい Entity Data Model を作成すると、次のようなメッセージが表示されます。

テーブル/ビュー TABLE_NAME には、主キーが定義されていません。 有効な主キーを推測できませんでした。このテーブル/ビューは は除外されました。このエンティティを使用するには、スキーマを見直す必要があります。 正しいキーを追加して、コメントを解除してください。

もし、それらを使用してデータを修正したい場合、必ずそれらのテーブルにPKを追加しなければならないのでしょうか、それとも、その必要がないように回避策はあるのでしょうか?

どのように解決するのですか?

エラーの意味はその通りです。

たとえこれを回避できたとしても、私を信じて、回避したくないでしょう。 このような混乱したバグが発生する可能性は計り知れず、恐ろしいですし、言うまでもなく、あなたのパフォーマンスは低下してしまうでしょう。

回避してはいけない。 データモデルを修正するのです。

EDITです。 この質問に対して、多くの人がダウンボーティングしているのを見かけました。 それはそれでいいのですが、OPの質問では テーブル ではなく、主キーのない ビュー . 答えはやはり同じです。 EFがテーブルにPKを持つ必要性を回避することは、管理性、データの整合性、そしてパフォーマンスの観点から、悪い考えです。

サードパーティーのアプリケーションにマッピングしているため、基礎となるデータモデルを修正する能力がないというコメントもあります。 このような場合、モデルが変更される可能性があるため、良いアイデアとは言えません。 この場合、ビューにマッピングすることになるでしょうが、これもOPの質問とは異なります。