Dot-Net

使用實體框架模型在與項目不同的項目中生成 POCO 類

  • March 17, 2010

我正在嘗試使用 VS2010 將儲存庫模式與 EF4 一起使用。

為此,我通過右鍵點擊實體模型設計器並點擊添加程式碼生成項來使用 POCO 程式碼生成。然後我選擇 POCO 模板並獲取我的課程。

我想做的是將我的解決方案結構化為實體(POCO)類的單獨項目和實體模型和儲存庫程式碼的另一個項目。

這意味著我的 MVC 項目可以將 POCO 類用於強類型視圖等,而不必了解儲存庫或必須引用它。

為了將它們連接在一起,我將有另一個帶有介面的單獨項目並使用 IoC。

聽起來不錯,我只是不知道如何將類生成到他們自己的項目中!我可以複製它們,然後更改它們的名稱空間,但是每當我更改數據庫中的模式並想要更新我的模型時,我想避免手動工作。

謝謝

實際上,EF 4.0 中的 T4 模板在設計時就考慮到了這種情況 :)

有2個模板:

  • 一個用於實體本身(即 ModelName.tt)
  • 一個用於 ObjectContext(即 ModelName.Context.tt)

您應該將 ModelName.tt 文件放在 POCO 項目中,只需將模板更改為指向持久性感知項目中的 EDMX 文件。

我知道聽起來很奇怪:現在有一個依賴項,但它是在 T4 生成時,而不是在編譯時!那應該沒問題吧?因為生成的 POCO 程序集仍然是完全不了解持久性的。

有關更多資訊,請參閱此步驟 5 和 6:http: //blogs.msdn.com/adonet/pages/walkthrough-poco-template-for-the-entity-framework.aspx

希望這可以幫助

亞歷克斯

引用自:https://stackoverflow.com/questions/2464909