2012-05-02 27 views
4

我是EF新手。我爲我的模型有一個單獨的項目。我安裝了EF 4.3.1.0。我發現Context的基類是ObjectContext而不是DbContext。這將成爲一個問題,當我腳手架我的控制器在我的前端項目中,在編輯操作它對MVC EDMX Codebehind使用ObjectContext與DBContext

context.Entry(status).State = EntityState.Modified; 

來電,但進入是不知道。我發現Entry是DbContext的新成員。

如何讓生成的代碼生成正確的東西?

這是一個DB的第一個項目

+0

代碼優先,Db優先,...? –

回答

3

您必須應用EF 4.x DbContext Generator在Visual Studio中的EDMX模型。您可以從Visual Studio擴展管理器安裝生成器模板。

當您安裝模板按照這個帖子下點4的步驟:

http://blogs.msdn.com/b/adonet/archive/2011/03/15/ef-4-1-model-amp-database-first-walkthrough.aspx

(在後所安裝的「EF 4.x版的DbContext替換「ADO.NET的DbContext發生器」 Generator「,它是EF 4.3.1的最新和更名版本)

該模板將從您的EDMX模型生成POCO類和派生的DbContext

+0

我試圖按照你所概述的方式去做。我發現,雖然新上下文是基於DbContext創建的,但上下文的舊定義仍保留在edmx代碼隱藏的designer.cs文件中。結果,當我編譯時,所有的對象/表都出現了重新定義的錯誤。 – Jeff

+0

@傑夫:這很奇怪。當您從EDMX設計器表面使用「添加代碼生成項目...」時,應該清空designer.cs文件(除了自動生成的註釋除外)。你是否擁有同一個項目/組件中的所有東西?也許問一個關於這個問題的新問題,我不知道這個混亂是怎麼發生的。 – Slauma

+0

我的模型在一個單獨的項目中。 – Jeff

相關問題