2012-08-28 22 views
5

我們還可以將一些項目從VS2010到VS2012,但仍然使用.NET 4.0和 .NET 4.5使用EF 4.4和5.0不與VS2012

當我添加一個新的EDMX,VS2012使用EF 5.0,但我喜歡繼續使用版本4.x這是第一點。

第二點是版本5.0,從DbContext繼承,而不是像4.x版本的ObjectContext。在版本5.0中,我沒有看到任何方式將連接字符串作爲參數傳遞。

如何在VS2012中使用4.x版本,具有相同的EDMX設計器行爲?

感謝,

+0

EF 4.4是.NET 4獨立的EntityFramework.dll程序集,它也包含'DbContext'。 'ObjectContext'是核心'System.Data.Entity.dll'程序集的一部分。你只是想用後者?如果是這樣,那就是EF 4.0,而不是4.4。 – hvd

+0

@hvd關鍵是如何從VS2012生成EDMX版本4而不是EF 5? –

+0

EDMX版本是2.0,而不是4,而不是5,並且將一個EDMX添加到.NET 4項目中會添加對EF 4.4的引用,而不是EF 5,所以我真的不清楚您的第一點是什麼。第二點(DbContext vs ObjectContext)很清楚,我只是不確定你在問什麼。 – hvd

回答

10

正如在評論中提到,你真的讓EF 4.4,而不是5.0 EF。但令人困惑的是,EF 4.4包含在NuGet EntityFramework 5.0包中。

對於您的其他問題,您可以在設計器中打開EDMX,將「代碼生成策略」從「無」恢復爲「默認」,然後在解決方案資源管理器中刪除.tt文件。現在你將再次擁有你的ObjectContext,如果你願意,你可以從你的項目中刪除EntityFramework軟件包。

我不確定是否有任何方法可以改變添加NuGet包的默認行爲。

+0

有沒有辦法回到新版本? (不刪除並創建EDMX) –

+1

@ Kris-I是的,右鍵單擊設計器,然後選擇「添加代碼生成項目」(從內存中,實際文本可能會稍有不同) – hvd