回答
今天使用的最好的東西仍然是NHibernate。它一直是最長的(參見Java的Hibernate)並且完成它。另外,現在有很多工具可以讓它更容易工作。它在功能方面讓LINQ to SQL脫離水域(雖然不易用)。版本1中的實體框架尚未準備好使用。下一個版本(實體框架4.0)將會好得多,並且可能值得一看。
我不明白它的線程安全部分。假設你指的是數據庫訪問,我會說Nhibernate做這個最好的恕我直言(儘管處理併發是任何ORM的基礎)。
理想情況下,我想生活在一個每個人輪到他的餡餅的世界。不幸的是,這不會發生,直到那時我會嘗試與Nhibernate these strategies之一。
樂觀,髒, 版本化或悲觀
應用這些根據您的需要。
您對ORM的選擇應該基於其背後的社區和生態系統的活躍程度,而不僅僅是其功能集(儘管這是社區的一個因素)。
此外,看一看NHProf,Linq to NH,Nhibernate Search和Nhibernate Validator
如果你能負擔得起IdeaBlade的DevForce是一個複雜的框架,超越ORM工具。這將是我對LOB企業應用程序的建議。
是一個綜合性平臺,可以爲n層環境提供企業.NET開發和部署。提供複雜的對象持久性,客戶端緩存,高級數據綁定,業務規則驗證,脫機/斷開操作支持,以及支持發佈和使用Web服務等衆多功能。它還包括業務對象服務器(BOS),這是一種應用服務器,它提供了可擴展性,安全性,並支持在互聯網上對.NET應用程序進行n層部署。
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。這將有助於我們在未來做出決定。
- 1. 什麼數據庫是MS Access for Coldfusion的良好進展?
- 2. 什麼是Windows用戶管理的良好.Net庫?
- 3. 什麼是.Net良好的業務規則引擎(BRE)?
- 4. 什麼是使用Office Communications Server進行.Net開發的良好參考?
- 5. 什麼是Windows良好的服務器性能監控軟件?
- 6. 什麼是Perl的良好開發環境?
- 7. 什麼是Crystal Reports for .NET?
- 8. 什麼是最大的併發Ble連接Android M +可以有
- 9. 什麼是AA不錯的,性能良好的方法來處理字符串
- 10. 什麼是*確定性併發性*?
- 11. Java與Clojure的良好併發性示例
- 12. 什麼是最好的.NET unicode庫?
- 13. 什麼是初學者內核開發的良好準系統Linux發行版?
- 14. 什麼是.NET控制檯應用程序的良好模板引擎?
- 15. 什麼是.NET Web應用程序的良好文件管理器?
- 16. 良好的服務層開發與設計:通信層開發中常見的不良做法是什麼?
- 17. 語言X的良好網絡圖庫是什麼?
- 18. Apache Thrift是一個並行性的良好平臺嗎?
- 19. 什麼是Web良好的抗壓API調用
- 20. 構建Web服務的良好功能語言是什麼?
- 21. 創建「良好」SecureRandom的最佳方式是什麼?
- 22. 什麼是用於C/C++編程的良好gvim guifont
- 23. 什麼是用於開發的良好的跨平臺Java Web服務器?
- 24. 什麼是適用於.NET框架的專家開發人員的良好入門資源?
- 25. 什麼是Java線程與Solaris上的CPU的良好比例?
- 26. 什麼是Windows Mobile上的GIS的良好SDK?
- 27. 什麼是良好的測試環境中測試的JQuery
- 28. 什麼是Windows上的網站的良好部署工具?
- 29. 什麼是.NET Control.Margin屬性?
- 30. 什麼是API客戶端的良好體系結構?
ORM瓶坯不是線程安全的函數是什麼?它構建查詢(應該是純粹的功能),執行它們,並將結果集轉換爲對象圖。如果有人設法以非線程安全的方式實現這一點,那麼某些事情就會發生可怕的錯誤。 – jrockway 2009-07-16 00:56:33
「ORM瓶坯不是線程安全的,會起什麼作用?」 - 兩個相同的查詢是否返回兩個對象圖(圖實例),還是返回相同的對象圖/實例? – ChrisW 2009-07-16 01:19:38
@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