2009-07-16 26 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。这将有助于我们在未来做出决定。

相关问题