web-dev-qa-db-ja.com

EntityFrameworkへの参照を手動で追加する

私はEFを中心に展開するプロジェクトに取り組んでいます。プロジェクトのコアレイヤーをさまざまなプロジェクトに分けています。

残念ながら、プロジェクトにEntityFramework.SqlServer.dllへの参照がないため、常にエラーが発生しています。

ビルドフォルダーに.dllファイルを追加するとこの問題は修正されますが、コードで「using」ステートメントを使用して解決したいのですが、プロジェクトにEntity Frameworkへの参照がないため、解決できません。

どうすれば追加できますか?

* PS [参照の追加]パネルでEntityFrameworkを検索すると、オプションとしてEFが表示されません。

** NuGetを使用していつでもインストールできますが、既にインストールしているので、冗長ではありませんか?

5
Kobek

DALがEFを使用するN層ソリューションでも同じ問題が発生しました。

WebプロジェクトにEntityFramework.SqlServer.dllへの参照を追加することで解決しました。

ダイアログでreferences-> Add Reference->に移動し、[〜#〜] com [を選択します。 〜#〜]そしてbrowseを押します。次に、EFを使用しているプロジェクトに移動し、EF参照が保存されているprojectsbinフォルダーに移動します。 EntityFramework.SqlServer.dllを選択して追加します。

次に、新しく追加された参照を右クリックします->プロパティ->選択ローカルコピーからtrue enter image description here

5
Marcus Höglund

プロジェクトを右クリックして[Nugetパッケージの管理]を選択し、「EntityFramework」を検索して、Nugetを使用することもできます。 MicrosoftのNugetを使用したEntity Frameworkをインストールします。

EntityFrameworkパッケージとEntityFramework.SqlServerパッケージの両方が追加されます。

2
Alexandre

私も同じような状況に遭遇しました。私が解決した方法は次のとおりです。[参照]-> [アセンブリ参照]で[参照]を選択し、現在のプロジェクトパッケージフォルダーに移動して、アプリケーションを対象としている特定のバージョンのentityframework.dllとentityframework.sqlserver.dllを参照します。に。これにより、ビルドの問題が解決しました。

0
LMKN

私もこの問題に遭遇しました。別のデータアクセスアセンブリを介してEFにアクセスしていましたが、同じプロジェクト内からテストコンソールアプリからEFを呼び出すと完全に機能しましたが、メインアプリケーションからDALオブジェクトのインスタンスを介してアクセスしようとするとエラーが発生しました。 。

メインアプリケーションに2つの参照を追加しましたが、それでもエラーが発生しました。

それから私は実際の問題が何であるかを理解しました。 DALプロジェクトのApp.configからメインアプリケーションにEF構成セクションを移動する必要がありました。

これを実行すると、すべてが完全に機能しました。基本的に、connectionStringsセクションとentityFrameworkセクションの内容をコピーする必要があります。

そうでなければ、EFは自分自身を接続する方法を知りません。

もちろん、DAL内のコードでEF接続を作成する場合は、この問題が発生しない可能性があります。

0
Dave Oakley