web-dev-qa-db-ja.com

タイプまたはネームスペース名「Entity」は、ネームスペース「System.Data」に存在しません

私はWSクラスを使用していますが、アプリケーションを実行するとエラーが発生しました:

The type or namespace name 'Entity' does not exist in the namespace 'System.Data' 

System.Data;およびSystem.Data.Entity;への参照がありますが、変更はありません。エラーが発生し続けます。また、web.configに次の行があります:

<compilation debug ="true" targetFramework="4.0"/>
63
st mnmn

みなさんありがとう!私は解決策を見つけました。理由を理解しているわけではありませんが、これを試したところうまくいきました! System.Data.Entity.Designへの参照を追加する必要があり、コードにusingを記述する必要はありません。ありがとう!

25
st mnmn

Visual Studioソリューションエクスプローラーからソリューションを右クリックして、ソリューションのNugetパッケージの管理をクリックし、EntityFrameworkをインストールします。

89
Tony Ding

こんにちは、この投稿を2年間読んだ場合、この投稿は非常に誤解を招く可能性があります。

VS 2013でEF6と.net 4.5.1を使用して、これを機能させるには次を参照する必要がありました

using System.Data.Entity.Core.EntityClient;

前と少し違う

これは、元の質問への回答というよりも、新しい問題について助けを求めてここに来る人にとっては参考になります

37
AlanMorton2.0

エンティティフレームワーク6.1.3を6.1.2にアップグレードしました(NuGetでさらにダウングレードしました)。働いた。

5
TJPrgmr

VSソリューションを右クリックして[NuGetパッケージソリューションの管理]をクリックし、エンティティフレームワークを検索して、エンティティフレームワークをインストールする必要があります。インストール後、問題は解決されます

5

Visual Studio 2013とEF6でも同じエラーが発生しました。 NewGetパックされたEntity Frameworkを使用しなければならなかったので、完璧に仕事をしました

4
Cormac Hallinan

すべてのケースをカバーするために私の答えを追加します:

私の解決策は、NuGetパッケージマネージャーからEntityFrameworkをインストールすることでした。その後、Visual Studioが "アンインストールを最終化"できなかったため、Visual Studioを再起動するように求められました。

Visual Studioを再起動してEntityFrameworkを再インストールすると、問題は解決しました。

これが誰かを助けることを願っています!

3
GigiSan

私の解決策は簡単でした! SVNサーバーからレポをチェックアウトすると、実際にこのエラーが発生していました。エラーを削除するために次の手順を実行しました

  1. きれいなソリューション
  2. Nugetパッケージマネージャーに行き、エンティティフレームワークをアンインストールしました。
  3. DataModelとその.csコンポーネントを削除しました。
  4. VSをシャットダウンし、再度開きます。
  5. Entity Frameworkをインストールし、エンティティモデルを再作成しました。
  6. 「ソリューションに含める」必要なファイルがあるかどうかを確認します。それは魅力のように働いた
2

System.Data.DataSetExtensionsを参照する必要がありましたが、これは完全に非論理的なようです

1
Erik Bergstedt

それは私を助けて、EFをアンインストールし、VSを再起動し、「使用」を追加しました:

using System.Data.Entity;
using System.Data.Entity.Core.Objects;
using System.Data.Entity.Infrastructure;
1
Roberto Gata

再インストールしてみました-運はありません。エンティティを見つける前に、モデルのテーブルを更新する必要がありました。

1
Joe

プロジェクトにEntityFramework Nugetパッケージがインストールされていることを確認してください。

@TonyDingの答えから:

Visual Studioソリューションエクスプローラーからソリューションを右クリックして、ソリューションのNugetパッケージの管理をクリックし、EntityFrameworkをインストールします。

インストールしてもエラーは発生しますが、@ papergodzillaのコメントごとに再インストールしました。

更新パッケージ-reinstall

そしてそれは私の問題を解決しました

これは、パッケージマネージャーコンソールで行います([表示]> [その他のウィンドウ]> [パッケージマネージャーコンソール])。
これですべてがうまくいきました!

1
Protector one

DBModelを更新する必要がありました。それで解決した

1
Dare

Csprojでフレームワークエンティティに次のようなヒントパスがあることに気付きました

<HintPath>..\..\..\..\..\..\Users\{myusername}

Nuget.configファイルにこれがありました:

 <config>
 <add key="repositoryPath" value="../lib" />
 </config>

a)上記の行を削除し、b)フレームワークエンティティパッケージをアンインストールし、c)ソリューションを閉じて再度開き、d)フレームワークを再インストールしました。

それは私の問題を修正しました。

0
Antonin GAVREL

同じエラーが発生しました。

Nuget PackagesからSystem.Data.Entity.Repositoryを追加すると、エラーが消えます。

それが助けになることを願っています!

0
FAHA

データベースファーストのアプローチを使用している場合:

Entity Frameworkをアンインストール/再インストールする前に、最初に別のテーブル/ストアドプロシージャをモデルに追加してみてください(現在マップされていないものがあると仮定して)。これで問題は解決しました。もちろん、リソースをマップする必要がない場合は、後でモデルから削除するだけです。しかし、edmxの強制再生がトリックを行ったようです。

0
Jason Sultana

根本的な原因は、UIを介してnugetパッケージをインストールすると、スクリプトが実行されないことがあることです。そのため、出力ビューを開くことをお勧めします。 Nugetのインストール時にライセンス契約ウィンドウが表示されない場合は、IDEが正しく機能していないというより良い変更があります。そのため、再起動、クリーンアップ、再構築が役立ちます!

PS:System.Data.Entity。*の下に何かを追加すると、Nugetインストーラーが適切に機能するようになります。しかし、これはまったく信頼できない方法を見つけました。

したがって、出力ウィンドウを見るだけで、最後に成功したnugetインストールメッセージのようなものが表示されるはずです。ほとんどの場合、問題が発生するとNugetインストーラーは起動しません。 IDEの再起動が役立つときです。

うまくいけば、NugetパッケージマネージャーとIDE(上記のインストーラー用語を使用しました)が変更を行い、ソリューションをコンパイルして、あなたを幸せに保ちます!しかし、IDEを再起動し、その出力ウィンドウを監視することで少し助けにならないときは!

0
SydMK