簡體   English   中英

使用EF 5(而不是4.x)

[英]Using EF 5 (and NOT 4.x)

我現在已經浪費了幾天試圖讓EF重新工作。 據我所知,即使我一直在嘗試使用EF5,我的項目也有一些對EF4的引用。

有人可以指出我需要采取的所有步驟,以便從我的計算機中消除所有與EF4相關的開發參考(如果我有使用它的第三方.net應用程序,很好-我只是不想在我的任何開發中使用它) )

現在,似乎沒有任何作用,因為EF的2個版本似乎相互競爭-即使當我開始一個新項目時。

另外,如果我僅使用EF 5,則當我想創建新的EF類時,是否要使用“ ADO.NET實體數據模型”或“ EF 5.x DbContext Generator”? 我認為第一個似乎是第二個,似乎想創建一個tt文件,而不是edmx文件,但是我想我會檢查一下,以防我遺漏了一些明顯的東西...

我正在使用C#在運行VS 2012的Win 8系統上進行開發,並且正在編寫一個大型桌面WPF應用程序(1個解決方案,許多項目,大量數據。)

FWIW-我當前無法使用的解決方案文件夾中的packages文件夾具有EntityFramework.5.0.0,因此我知道已經安裝了EntityFramework.5,我只需要從它們繼續感染我項目的位置消除EF 4.x引用。 是的,很多時間都花在尋找可以解決問題的答案上,但是我發現的任何事情似乎都無法解決。

最糟糕的是,在某一時刻,它一切正常,沒有問題-然后,我嘗試通過Nu-Get重新安裝EF 5來修復某些問題,此后一直沒有任何效果。

謝謝

不知道這是否可以解決您的問題,但可能會有所幫助...當您使用nuget時,它將操縱您的解決方案:

  • EF nuget軟件包已添加到解決方案根目錄的\\ packages \\文件夾中
  • 將在您使用nuget的解決方案中為每個項目創建一個packages.config文件
  • 在項目文件中添加了參考(對於c#,*。csproj)

有時您可能需要更改nuget所做的事情,因此可以在這些區域中進行檢查。 在您的情況下,最好手動刪除兩個EF版本,然后在使用nuget或任何適合的方法中添加EF5。

聽起來您可能已經刪除了EF軟件包,但沒有整理package.config和項目文件,所以請先檢查一下(在VS解決方案關閉時,您將要對其進行編輯)。

您正在尋找從每個packages.config文件中刪除以<package id="EntityFramework"...開頭的行。

如果您希望從解決方案中完全刪除nuget,則csproj文件具有帶有<Content Include="packages.config" /><itemgroup> <Content Include="packages.config" /> -刪除整個項目組,可能有其他對此文件的引用錯過了,您也要刪除它們。

否則,如果您只是在刪除EF內容之后,請查找具有您的引用的<itemgroup> ,並確保不存在不需要的EF版本的引用。

我認為這就是您所需要的-在進行這些更改后在VS中重新加載解決方案時,您的引用應該正確。

我已經放棄了。 太浪費時間了。 我從頭開始創建了一個新的解決方案,並首先構建了EF項目,並確保它可以工作。 那行得通。 因此,現在我要系統地引入其他項目,並按需要進行備份,直到將所有其他項目都恢復到新解決方案中為止。

一個大的皮塔餅。 我真的希望MS有一個能夠顯示項目引用的所有程序集的工具-名稱,程序集位置和引用該程序集的模塊-這樣就可以輕松解決這些問題。

再次感謝你的幫助。

暫無
暫無

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

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