2012-04-12 132 views
4

我一直在使用Linq-to-SQL來訪問我的數據庫。但是我最近被告知這種做法並不是最好的,因爲它允許混合業務邏輯層的數據訪問&。使用實體框架T4 POCO

我聽說實體框架T4 POCO是一個解決方案,但我找不到有關它的完整信息。有沒有人有更多的細節與我分享?

在此先感謝

回答

2

什麼POCO(普通老式CLR對象)做它,它允許你創建你自己的表示形式類數據庫中。然後實體框架將您的數據庫(通過配置(提示使用edmx文件))轉換爲您創建的POCO類。

例子:

表用戶:

id | fName | lName | otherField 

您可以在C#與POCO具有以下屬性代表這個用戶對象:

int id, string fName, string lName, var otherField. 

然後你就可以了,在這些屬性的getter和setter中,插入您的業務邏輯。

注意:我建議只使用實體框架icm和edmx文件。把你的商業邏輯放在別的地方。當創建一個Web服務,我總是喜歡的類別順序如下:

  • 接收呼叫和呼叫隔壁班的權函數的類
  • 那麼這個類的給定PARAMS轉換呼叫到格式表示應用程序的其餘部分可以理解並調用另一個類的正確功能。
  • 該類然後檢查params中的業務邏輯並調用另一個類來對數據庫執行某些操作。
  • 該類然後處理數據庫連接和東西(使用實體框架的)再次注意:您還可以使用POCO在這最後一步;)
+2

@marc_s感謝編輯,現在它更可讀! – 2012-04-12 09:13:06

1

我找到這個網站提供瞭如何一個很好的例子使用EF4和POCO類。

http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx

這說明了「代碼優先」的方式爲實體框架4

+0

代碼優先是**不是**與使用EF和POCO類相同。您可以使用「傳統」數據庫優先方法和EDMX模型的EF,並且**仍然**有T4模板爲您生成POCO類.... – 2012-04-12 09:02:53

+0

@marc_s您是對的,我錯過了T4中的T4部分題。 – 2012-04-12 10:16:48