2011-07-23 35 views
2

由於我目前的項目的具體情況,我必須繼續使用.NET 2.0。是否有任何實體框架類似於.NET 2.0的ORM?.NET 2.0的任何類似實體框架的ORM? (DB優先!)

  1. 對於非LINQ接口,我絕對可以。類似users.Where(u => u.Age > 100).Count()的語法很好。
  2. 我需要使用DB優先方法:我已經擁有一個包含大約30個表的數據庫,並且只是考慮簡化與它的工作方式。所以,如果可以從現有的數據庫生成所需的代碼,我將非常感激。
  3. 它也可以,如果它不會生成所有必需的代碼,但提供手動描述數據庫結構(例如使用屬性)的方式。基本上,我只是希望能夠與建造或多或少複雜的查詢,而與真正的SQL搞亂,SqlParameter S和DataSet S/DataTable一切都這些int.Parse(row[12].ToString())(這就是我試圖擺脫的遺留代碼)
  4. 另外,如果我能夠通過調用現有的存儲過程來「覆蓋」某些特定的「查詢」,那將會很棒。

最重要的是p.2-DB第一。有什麼這種嗎?或者我完全錯了我的想法?將欣賞任何想法。

回答

2

有很多可用的ORMs,但其中一些是商業的(LLBLGen Pro)。對你來說最好的選擇可能是NHibernate 2.1(我認爲NHibernate 3.x需要.NET 3.5)。

你還應該向前推進一個更新的.NET版本。應該避免在.NET 2.0上開始新的開發,並將新技術引入現有的舊代碼庫IMO中,破壞應用程序的體系結構和可維護性。

編輯:

所以,我會很感激,如果有可能產生從現有數據庫所需的代碼。

最重要的是第2頁 - 數據庫第一。

ORM和代碼生成是兩個不同的領域。數據庫首先並不意味着代碼生成 - 它意味着映射到現有數據庫而無需更改數據庫。 ORM不是爲你生成代碼。 ORM的要點是允許您將DB映射到類和抽象查詢。如果你最重要的一點是代碼生成,你應該尋找其他的東西,然後ORM。 NHibernate沒有包含這樣的代碼生成,但是還有一些額外的項目添加了類似的功能。

+2

如果需要代碼生成,LLBLGen Pro值得評估。它具有用於各種ORM的設計器和代碼生成器,並提供與實體框架設計器類似的體驗。 –

5

您最好的選擇是退房NHibernate。許多(大多數?)人認爲它比EF 4.1更具功能完整性和強大功能,此外,在這裏還有大量資源用於指導你的開發過程。

請務必查看Fluent NHibernate以便輕鬆地將數據庫映射到C#對象。編輯XML文件的替代方法非常複雜,笨重且耗時。

請注意,您可能需要使用一箇舊版本,但功能仍然完全的NHibernate,它與.NET 2.0兼容(我認爲,但並不積極,更新的版本需要.NET 3.5) 。