[解決済み] なぜこのようなエラーが発生するのでしょうか。次の EntitySet/AssociationSet - Entity1 に対して指定されたマッピングがありません?
質問
Entity Framework 4をモデルファーストアプローチで使用しています。
私はプロジェクトを開始し、エンティティを設計し、データベースを生成しました。すべてがうまくいきました。
その後、私は戻って、私のモデルに別のエンティティを追加する必要がありました。しかし、エンティティを EDMX にドラッグすると、このエラーが発生しました。
よしっ! Entity1をテーブルにマッピングすればいいんだ...。しかし、ちょっと! 私はモデルファーストアプローチを使っているので、DDLを生成するときに私のためにテーブルを作成することを期待しています。
このエラーを回避するにはどうすればよいですか?
どのように解決するのですか?
これは、EF4がモデルファーストで動作しているためです。
モデルファーストモデルを最初に作成したときは、SSDLが存在しない状態です。エンティティをドラッグしたり、関連付けたりすることができるのに、EDMX ファイルの SSDL を見てみると、どのエンティティも SSDL に関連するストレージ テーブルを持っていないことがわかります。
をクリックすると変わります。
Generate Database From Model
コンテキストメニュー項目をクリックすると変わります。分かりにくいのは、このアクションが単に DDL スクリプトを生成する以上のことを行う点です。実際、SSDL 情報を含むように EDMX ファイルが変更されます。この時点から、EDMX ファイルは、デザイナー/CSDL のすべてのエンティティが SSDL のエンティティにマッピングされる必要がある状態になります。もしマッピングされない場合は、コンパイルタイムエラーが発生します。
次の EntitySet/AssociationSet - (EntityName) に対してマッピングが指定されていません。
もうひとつの興味深い事実は、コンパイルを妨げるようなエラーではないことです。確かに、出力クラス ライブラリーが生成されます。警告か何かであるべきではないでしょうか?
このエラーを防ぐために、新しいエンティティを挿入した後にしなければならないことは、次のとおりです。
Generate Database From Model
を再度実行することです。これで SSDL が更新され、マッピングが修正されます。
EDIT
モデルファーストを使用せず、データベースから更新する場合、DBサーバーのテーブルを削除した場合にも、このエラーが発生します。これは、Entity Frameworkがエンティティを自動的に削除しないためです。エンティティを手動で削除すれば、このエラーは解消されます。
関連
-
[解決済み】「The breakpoint will not currently be hit」を改善するには?このドキュメントにはシンボルが読み込まれていません。" という警告はどうすれば改善されますか?
-
[解決済み] ファイル *.mdf をデータベースとして添付できません。
-
[解決済み] "ItemsSourceを使用する前に、Itemsコレクションを空にする必要があります。"
-
[解決済み] VS2017/2015 で .xproj ファイルを開く方法
-
[解決済み] リファレンスの追加にSystem.Web.Mvcが表示されないのはなぜですか?
-
[解決済み] SQL Server Compact EditionデータベースのLINQ to SQLで、"Row not found or changed "例外を解決するにはどうすればよいですか?
-
[解決済み] Microsoft.NETFrameworkとMicrosoft.NETFramework64の違いは何ですか?
-
[解決済み] エンティティフレームワークのタイムアウト
-
[解決済み] CryptographicException「キーセットが存在しない」、ただしWCF経由に限る
-
[解決済み] .NETで文字列から発音区分符号(アクセント)を削除するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 16進数値0x00は無効な文字です。
-
[解決済み] VS2017/2015 で .xproj ファイルを開く方法
-
[解決済み] .Netの配列のLongLengthの目的は何ですか?
-
[解決済み] データテーブルがすでに別のデータセットに属している
-
[解決済み] DockPanelを空きスペースいっぱいに表示させる方法
-
[解決済み] ファイルまたはアセンブリをロードできませんでした 操作がサポートされていません。(HRESULT: 0x80131515 からの例外)
-
[解決済み] .NETにおけるstructとclassの違いは何ですか?
-
[解決済み] LINQクエリでToList()とToArray()のどちらを呼び出すのが良いですか?
-
[解決済み] Visual Studioの「Any CPU」ターゲットはどういう意味ですか?
-
[解決済み] Microsoft.ACE.OLEDB.12.0' プロバイダがローカルマシンに登録されていません。