4

私は Visual Studio 2012 を使用しています。クラス プロジェクトを作成し、このプロジェクトに EF データ モデルを追加しました。既存の SQL Server データベースからデータ モデルを作成しました。MVC 4 プロジェクトを作成し、エンティティ接続文字列を Web 構成に追加し、データ プロジェクト参照を追加しました。

ここまでは順調です。

次に、Entity Framework を使用して MVC コントローラーを追加します。モデル クラスの 1 つを選択します。データ コンテキスト クラスを選択します。[追加] をクリックします。

VS がエラーを表示します。エラー メッセージの最後の部分は、クラスがコンパイル済みのアセンブリにある可能性があります {これは本当です}。

「AA」は、指定された「aanamespace.aaEntity」クラスの一部ではなく、エンティティ クラスを DbSet プロパティに変更できませんでした。たとえば、「aaEntity」はコンパイル済みアセンブリにある可能性があります

4

6 に答える 6

4

私は同じ状況にあり、クラスライブラリを作成しました。その中にすべての.edmxがあり、mvcプロジェクトへの参照があると、まったく同じエラーメッセージが表示され、ここに質問を投稿しました(stackoverflow.com/質問/18552864/…)

どのように修正しましたか:

Visual Studio を閉じて、もう一度開きます...

于 2013-09-10T21:50:12.717 に答える
3

将来、同様の問題を抱えている他の人を助けることができるように、時間をかけてこの質問に自分で答えたいと思います.

これが私がしたことです。

MVC プロジェクトの Models フォルダーに .edmx ファイルを作成しました。MVC プロジェクトのビルド

これで、.edmx ファイル内の任意のテーブルにコントローラーを追加できます。

注: ベスト プラクティスは、ソリューション内に .edmx ファイルを保持するプロジェクトを作成することだと思いました。このプロジェクトを myData と呼びました。

このプロジェクトへの参照を MVC プロジェクトに追加し、この足場を試してみましたが、うまくいきませんでした。


解決策はとても簡単なので、これが他の人に役立つことを願っています。

ジェリー

于 2012-11-19T02:24:20.200 に答える
1

Run Visual studio (管理者として実行) が機能します。

于 2013-05-06T08:18:21.437 に答える
1

この問題は、VSCommands for Visual Studio 2012 (Early Access) 拡張機能が原因でした。アンインストールしたら、問題はなくなりました。

于 2013-03-18T04:52:56.913 に答える
0

正確なエラーが表示されないので、EF コントローラーのスキャフォールディングで経験した問題と、それをどのように回避したかを提案することしかできません。EF コンテキスト クラスを部分クラスで拡張した場合は、後者をプロジェクトから削除し、コントローラーを生成する前に再コンパイルする必要があります。そうしないと、EF スキャフォールディングが機能しなくなります。

于 2012-11-18T15:45:28.517 に答える