2009-07-16 46 views
1

我正在尋找一個全面的ORM,可以輕鬆處理.NET的併發性。它也應該是線程安全的。什麼是良好的併發性的ORM for .NET?

任何推薦?請詳細說明你爲什麼選擇這個特定的ORM。

+3

ORM瓶坯不是線程安全的函數是什麼?它構建查詢(應該是純粹的功能),執行它們,並將結果集轉換爲對象圖。如果有人設法以非線程安全的方式實現這一點,那麼某些事情就會發生可怕的錯誤。 – jrockway 2009-07-16 00:56:33

+0

「ORM瓶坯不是線程安全的,會起什麼作用?」 - 兩個相同的查詢是否返回兩個對象圖(圖實例),還是返回相同的對象圖/實例? – ChrisW 2009-07-16 01:19:38

+0

@jrockway:我認爲你大大低估了O/R映射的問題。真實世界的ORM遠不止於此。例如,NHibernate實現了幾個緩存級別。請參閱http://ayende.com/Blog/archive/2008/01/24/NHibernate-and-the-second-level-cache-tips.aspx。保持它的線程安全,有很多緩存是* hard * – 2009-07-16 04:25:10

回答

9

今天使用的最好的東西仍然是NHibernate。它一直是最長的(參見Java的Hibernate)並且完成它。另外,現在有很多工具可以讓它更容易工作。它在功能方面讓LINQ to SQL脫離水域(雖然不易用)。版本1中的實體框架尚未準備好使用。下一個版本(實體框架4.0)將會好得多,並且可能值得一看。

2

我不明白它的線程安全部分。假設你指的是數據庫訪問,我會說Nhibernate做這個最好的恕我直言(儘管處理併發是任何ORM的基礎)。

理想情況下,我想生活在一個每個人輪到他的餡餅的世界。不幸的是,這不會發生,直到那時我會嘗試與Nhibernate these strategies之一。

樂觀,髒, 版本化或悲觀

應用這些根據您的需要。
您對ORM的選擇應該基於其背後的社區和生態系統的活躍程度,而不僅僅是其功能集(儘管這是社區的一個因素)。

此外,看一看NHProfLinq to NHNhibernate SearchNhibernate Validator

1

如果你能負擔得起IdeaBlade的DevForce是一個複雜的框架,超越ORM工具。這將是我對LOB企業應用程序的建議。

是一個綜合性平臺,可以爲n層環境提供企業.NET開發和部署。提供複雜的對象持久性,客戶端緩存,高級數據綁定,業務規則驗證,脫機/斷開操作支持,以及支持發佈和使用Web服務等衆多功能。它還包括業務對象服務器(BOS),這是一種應用服務器,它提供了可擴展性,安全性,並支持在互聯網上對.NET應用程序進行n層部署。

1

LLBLGen Pro是一個很好的。我在我的項目中使用它,並且它表現良好。我無法比較LLBLGen pro中可用的其他O/R映射器,因爲我第一次使用O/R映射器。這不是免費的,但我認爲花錢是好事。

這些鏈接可能會有所幫助。

http://weblogs.asp.net/fbouma/archive/2004/03/06/85125.aspx http://www.llblgen.com/defaultgeneric.aspx

但不要告訴我們哪些您爲項目選擇的O/R Mapper。這將有助於我們在未來做出決定。

相關問題