簡體   English   中英

命名空間“System.Data”中不存在類型或命名空間名稱“實體”

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

我正在使用 WS 類,當我運行應用程序時它給了我錯誤:

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

我有一個對System.Data;的引用System.Data; System.Data.Entity; 但沒有任何變化。 我不斷收到錯誤。 我也在 web.config 行:

<compilation debug ="true" targetFramework="4.0"/>

右鍵單擊 Visual Studio 解決方案資源管理器中的解決方案,單擊管理解決方案的 Nuget 包並安裝 EntityFramework

嗨,這篇文章是非常具有誤導性的,如果你讀了 2 年。

通過在 VS 2013 中使用 EF6 和 .net 4.5.1,我必須參考以下內容才能使其正常工作

using System.Data.Entity.Core.EntityClient;

和以前有點不一樣

對於來這里尋求新問題幫助的人來說,這更像是一個僅供參考,而不是原始問題的答案

謝謝大家! 我找到了解決方案。 不是我明白為什么,但我試過這個並且它起作用了! 我只需要添加對: System.Data.Entity.Design的引用,而不必在代碼中編寫任何using 謝謝!

我有實體框架 6.1.3,升級(好吧,在 NuGet 中降級更多)到 6.1.2。 工作了。

您需要通過右鍵單擊您的 VS 解決方案並單擊管理 NuGet 包解決方案並在那里搜索實體框架來安裝實體框架。 安裝后問題就解決了

我只是在 Visual Studio 2013 和 EF6 上遇到了同樣的錯誤。 我不得不使用 NewGet 打包的實體框架並完美地完成了這項工作

我將添加我的答案以涵蓋所有情況:

我的解決方案是從 NuGet 包管理器卸載 EntityFramework,然后提示我重新啟動 Visual Studio,因為它無法“完成卸載”。

我重新啟動了 Visual Studio 並重新安裝了 EntityFramework,然后我的問題就解決了。

希望這可以幫助某人!

確保為項目安裝了 EntityFramework Nuget 包。

來自@TonyDing 的回答:

右鍵單擊 Visual Studio 解決方案資源管理器中的解決方案,單擊管理解決方案的 Nuget 包並安裝 EntityFramework

安裝后,我仍然遇到錯誤,但根據@papergodzilla 的評論重新安裝了它:

更新包-重新安裝

它解決了我的問題

在包管理器控制台(查看 > 其他窗口 > 包管理器控制台)中執行此操作。
現在一切都很好!

我的解決方案很簡單! 從 svn 服務器檢出 repo 時,我實際上遇到了這個錯誤。 我采取了以下步驟來消除錯誤

  1. 清洗液
  2. 去 nuget 包管理器並卸載實體框架。
  3. 刪除了 DataModel 及其 .cs 組件。
  4. 關閉VS並再次打開。
  5. 安裝實體框架和重新創建實體模型。
  6. 檢查是否需要“包含在解決方案中”的任何文件。 它就像一個魅力

我安裝了EntityFramework 6.2而不是6.3 ,它工作正常。

也許是.NetCoreApp v2.1.NETFramework v4.6.1

這里的大多數答案似乎都缺乏對 EF 6.2 和 6.3 之間發生的命名空間更改的認識。

我有意從 EF 6.1 升級到 6.3,以便能夠針對 .NET Standard 2.1。 但是,我不小心將 .NET Standard 2.0 用於我的庫中的新目標,然后The type or namespace name 'Entity' does not exist in the namespace 'System.Data'得到了The type or namespace name 'Entity' does not exist in the namespace 'System.Data' 這個 GH 問題評論給了我需要修復的線索。 我將 lib 目標更改為 .NET Standard 2.1 並編譯項目。 無需重新安裝、卸載或重新啟動。

嘗試重新安裝 - 沒有運氣。 在找到實體之前,我必須刷新模型中的表格。

它對我有幫助,我卸載了 EF,重新啟動了 VS 並添加了“使用”:

using System.Data.Entity;
using System.Data.Entity.Core.Objects;
using System.Data.Entity.Infrastructure;

我不得不刷新我的 DBModel。 那解決了

我不得不引用 System.Data.DataSetExtensions,這似乎完全不合邏輯

我發現根本原因是當您通過 UI 安裝 nuget 包時,腳本有時不會運行。 因此,我建議您在執行此操作時打開輸出視圖。 如果您在安裝 Nuget 時沒有看到許可協議窗口,那么您的 IDE 沒有正確完成工作,這是一個更好的變化。 所以這就是為什么重新啟動、清理和重建會有所幫助!

PS:在 System.Data.Entity.* 下添加任何內容都有幫助,因為這會觸發 Nuget 安裝程序正常工作。 但這我發現了一個非常不可靠的方法。

所以只看輸出窗口,你必須在最后看到類似 nuget 安裝成功的消息。 大多數情況下,出現問題時,Nuget 安裝程序甚至不會啟動。 那時您重新啟動 IDE 將會有所幫助。

當一切順利時,Nuget 包管理器和 IDE(我在上面使用了安裝程序術語)將進行更改,編譯解決方案並讓您滿意! 但是當它通過重新啟動 IDE 並觀看輸出窗口沒有提供一點幫助時!

如果您使用的 EF 版本超過 6.x,請查看您的解決方案的每個項目中是否都安裝了實體框架 nuget 包。 您可能已經安裝了 Ef,但沒有安裝在您正在處理的特定項目中。

我有同樣的錯誤。

我從 Nuget Packages 添加了 System.Data.Entity.Repository 並且錯誤消失了。

希望它會有所幫助!

我注意到在 csproj 中,框架實體有像這樣的提示路徑

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

我在 nuget.config 文件中有這個:

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

a) 我刪除了以上幾行,b) 卸載了框架實體包,c) 然后關閉了解決方案並重新打開它,d) 重新安裝了框架。

它解決了我的問題。

如果您使用的是數據庫優先的方法:

在卸載/重新安裝實體框架之前,首先嘗試簡單地將另一個表/存儲過程添加到您的模型中(假設當前有任何未映射的表)。 那為我解決了這個問題。 當然,如果您不需要映射的資源,則之后只需將其從模型中刪除即可。 但看起來 edmx 的強制再生成功了。

對於那些使用 vscode 的人,通過檢查你的 app.csproj 文件來確保 EntityFramework 已經安裝,奇怪的是檢查你引用 System.Data.Entity 的文件是否在 /obj 文件夾中。

我剛剛通過 NugetPackage 在我的 Visual Studio 2013 中將我的實體框架更新到版本 6 並添加以下參考:

System.Data.Entity,
System.Data.Entity.Design,
System.Data.Linq

通過右鍵單擊引用-> 在我的項目中添加引用。 現在刪除我之前創建的實體模型並重新創建它,構建解決方案。 現在它對我來說很好用。

重新安裝EntityFramework也對我有用。 重新安裝,重建它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM