2015-11-11 6 views
6

チュートリアルの後にVisual Studio 2015で簡単なADO.Net MVCプロジェクトを作成しました。hereです。私のプロジェクトは機能しますが、データベースにテーブルを追加して、それらと既存のテーブルとの間にいくつかの外部キーの関係を作成したかったのです。すべてのテーブルを選択して、ADO.Netエンティティデータモデル(プロジェクトプロパティ>追加>新規アイテム>データ> ADO.Netエンティティデータモデル> EFデザイナー>データモデル)を追加しました。 Visual Studioにインストールされている(localdb)\ MSSQLLocalDBを使用しています。「データベースからのEFデザイナ」テーブルが欠落しています.edmxダイアグラム

私の意図は、.edmxダイアグラムで新しいテーブルとFK関係を作成し、修正されたモデルをデータベースに戻すことでした。ただし、ASP.NET MVCテンプレートによって作成された6つのテーブルのうち5つだけがテーブルに追加されました。 AspNetUserRolesテーブルは追加されませんでした。

テーブルが追加されなかった理由と、新しいテーブルとキーの関係を作成するために何をすべきか説明できる人はいますか?私はDB/SQLの専門家ではないため、グラフィカルな環境で作業する方が好きです。

+0

VSのサーバーエクスプローラでデータベースを開くことはありますか? – tshoemake

+1

おそらく、キーを形成するためのユーザーとロールを識別するための表がある場合、この表はダイアグラムには表示されませんが、ナビゲーション属性にのみ表示されます。テーブルが2つのFKで構成され、プライマリキーを形成し、他のプロパティを持たない場合は、EF –

+0

@ Markのテーブルとして表示されません。これは2つの外部キーのテーブルです。 EFはなぜこのようなテーブルを無視するのですか?モデルからDBを再構築すると、このテーブルが復元されますか? –

答えて

7

を更新するために、[完了]ボタンをクリックしてください:

あなたがテーブルのプライマリキーと、テーブル内に他のプロパティEntity Frameworkのを形成するために結合2つの外部キーで形成されたテーブルを持っている場合このテーブルはバックグラウンドに存在しますが、このテーブルはモデルに追加されません。

中間結合表は必要ありません。 EFはNavigationプロパティを追加します。

この場合、次のようなものを使用します。 (ユーザーオブジェクト).Ro​​les.add(新しいユーザーロールオブジェクト)。 コンテキストの変更を更新に保存します。

0

最初にモデルを生成していたときにAspNetUserRolesを選択していませんでした。 チェックボックスを使用して、必要なテーブルを選択します。

追加するには、コンテキストメニューからデザイナーを右クリックして、「データベースからモデルを更新...」を選択します。最初のタブの下に "追加"。 「表」を展開し、「dbo」を展開して、チェックボックスと必要な他の表を使用して「AspNetUserRoles」を選択します。これをお探しの方のためのモデルとEDMX

+0

テーブルを選択するのを忘れてしまったと思います。それはテーブルを引っ張らなかった。 –

+0

それは私が言ったことです。最初にテーブルを選択しませんでした。しかし、答えとしてマークする代わりに、私の答えを投票して下さったように見えます。投票の理由は何ですか? –

+0

私はあなたを落札しませんでした。私はコメントに投票する担当者を持っていない - 私がした場合、私は持っていたではない。それが私の問題の原因ではなかったとしても、あなたの答えに時間を割くことに感謝します。それは他の人を助けるかもしれない。マークホーマーは私の場合に適用された答えを持っていました。残念ながら、私は彼にも投票できませんでした。 –

1

Efには、テーブルの主キーが必要です。 EFよりもテーブルの主な欠落がそのテーブルを無視する場合。 Find details here

関連する問題