回答
今天使用的最好的东西仍然是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. 什么是.net良好的服务器端验证库?
- 3. 什么是.Net良好的业务规则引擎(BRE)?
- 4. 什么是Windows用户管理的良好.Net库?
- 5. 什么是使用Office Communications Server进行.Net开发的良好参考?
- 6. 什么是Windows良好的服务器性能监控软件?
- 7. 什么是Perl的良好开发环境?
- 8. 什么是Crystal Reports for .NET?
- 9. 什么是AA不错的,性能良好的方法来处理字符串
- 10. 什么是最大的并发Ble连接Android M +可以有
- 11. 什么是*确定性并发性*?
- 12. 什么是最好的.NET unicode库?
- 13. Java与Clojure的良好并发性示例
- 14. 什么是.NET Web应用程序的良好文件管理器?
- 15. 什么是.NET控制台应用程序的良好模板引擎?
- 16. 什么是初学者内核开发的良好准系统Linux发行版?
- 17. 语言X的良好网络图库是什么?
- 18. 良好的服务层开发与设计:通信层开发中常见的不良做法是什么?
- 19. Rx for .NET - Scheduler.Dispatcher发生了什么?
- 20. 什么是Web良好的抗压API调用
- 21. 构建Web服务的良好功能语言是什么?
- 22. Apache Thrift是一个并行性的良好平台吗?
- 23. 创建“良好”SecureRandom的最佳方式是什么?
- 24. 什么是用于C/C++编程的良好gvim guifont
- 25. 什么是循环JS中变量的良好命名形式?
- 26. 什么是适用于.NET框架的专家开发人员的良好入门资源?
- 27. 什么是用于开发的良好的跨平台Java Web服务器?
- 28. 什么是.NET Control.Margin属性?
- 29. 什么是在.NET中进行并发性分析的很好的解决方案?
- 30. 什么是Windows上的网站的良好部署工具?
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