5

我幾乎沒有碰過EF4,但我已經用了很多LINQ to sql。我想開始進入一個EF模板,但我不知道哪些情況對每個模板都有意義,或者他們的意圖是什麼。各種模板類型的用途,優點和缺點是什麼?

我有以下幾種可能:

  • 數據模板
    • ADO.NET實體數據模型
    • 基於服務的數據庫(這甚至關係到EF
  • 碼?模板(我熟悉T4)
    • ADO.NET EntityObject基因rator
    • ADO.NET自跟蹤實體發生器
  • Online模板
    • ADO.NET C#POCO實體發生器
+0

你現在也可以選擇「Code First」,只是爲了使事情複雜化,儘管它現在只是一個CTP。 – 2010-10-21 18:15:12

回答

14

我不知道什麼情況下做出 感覺每個或他們的意圖 是

不合理的聲音粗魯,但你有沒有在MSDN/ASP.NET看看?有大量的信息。並且有一個lot到這些模板中的每一個,比我更多的可以進入這裏。每個頁面都有一個MSDN頁面。

這就是說,我給你一個快速總結,所以在這裏絆倒的人有一些信息。

ADO.NET實體數據模型

這是您創建使用實體框架作爲你的ORM的文件,它是強制性使用EF。在你使用任何其他人之前,你需要這個。您可以用多種不同的方法,包括數據庫第一(從數據庫生成),代碼爲先,型號爲先,等

基於服務的數據庫

我創建EDM從來沒有聽說過這個術語,並且鑑於我最近一直在與EF一起工作(和閱讀),我懷疑這與EF有關。

ADO.NET EntityObject發生器

生成類從EntityObject類繼承的實體。與默認的EF代碼生成器相同,除了將輸出代碼放入Model.edmx.designer.cs(默認)文件中之外,代碼將放入單獨的文件中。我個人認爲這個模板沒有任何好處。

ADO.NET自跟蹤實體發生器

生成實體類時,你要開發的N層應用(也就是說,如果你想允許一個WCF/Silverlight應用程序與你的模型工作)。爲了處理來自各種應用程序的持久性操作,實體被EF Graph設置爲「可跟蹤」。

ADO.NET C#POCO實體發生器

我最喜歡的。 :)爲從繼承的實體生成類。他們不知道它們被用於持久性。當你想要持久性 - 無知,可測試性和鬆散耦合你的域/持久層時,將它用於應用程序。

+0

+1感謝您的概述,這是我所希望的 – Maslow 2010-10-21 15:00:17

+0

@Maslow - 請勾選此爲正確答案。 – RPM1984 2010-11-22 04:24:01

+0

我一直在看看是否有其他人會貢獻,標誌着它。 – Maslow 2010-11-22 16:55:09

相關問題