NHibernate,Entity Framework,活动logging或linq2sql
我的团队正在ASP.NET MVC中开始一个新项目,我们想知道用什么技术来访问数据。 你如何决定哪一个是最好的? 哪个性能最好? 哪一个更容易使用和维护?
如果.NET 4.0,selectNHibernate或entity framework。 NHibernate更具扩展性,通常function更丰富。 entity framework对那些宁愿拥有微软提供的产品的公司来说效果更好。 他们都是有效的select,而且还没有人通过对比来发表客观的重大打击。 这是比较好的非客观比较之一:
http://ayende.com/blog/archive/2010/01/05/nhibernate-vs.-entity-framework-4.0.aspx
如果.NET 3.5或更早版本,请selectNHibernate。
为.NET项目select数据库和ORM
我应该使用哪种ORM工具进行.Net开发
最容易学习和使用.NET ORM框架?
一些关于.NET ORM学习的build议
最好的ORM工具
https://stackoverflow.com/questions/380620/what-object-mapper-solution-would-you-recommend-for-net
https://stackoverflow.com/questions/249550/what-orm-frameworks-for-net-do-you-like-best
与.NET 2.0 / 3.5一起使用的最好的免费ORM工具
https://stackoverflow.com/questions/132676/which-orm-for-net-would-you-recommend
2009年9月4日以后:
或映射工具
O / RMselect(不依赖于LINQ)
https://stackoverflow.com/questions/1469761/nhibernate-vs-entity-framework-vs-something-better
如何为.netselect一个对象关系映射
也就是说,事情变了。 现在NHibernate支持Linq,我认为NHibernate是大多数情况下的明确select。 如需更长时间和相当最新的分析,请随时阅读以下内容:
.NET和ORM – 决策,决策
我的首选是LLBLGenPro – 一个非常棒的ORM,就像你期望的一样。 它不是基于configuration像entity framework或nhibernate,它生成基于您的数据库的DAL(通过他们的工具有很大的灵活性)。
LINQ2SQL很容易使用。 entity framework提供了很好的可扩展性,未来的版本将包含很多改进。
性能的一个关键规则:编写易于维护,读取和分发的代码; 如果它慢 – 优化!
我认为,今天的ORM之间的performance差异是不明显的,所以你应该select一个最舒适和高效的工作。
entity framework比linq2sql具有更好的关系映射(例如,它具有多重关系)。
我没有使用其他两个,但我在Java中使用Hibernate,这是非常简单的使用。
这个博客文章比较了.NET各方面的各种数据技术(性能,可维护性,可testing性等)。 可能对你的决策过程有所帮助。
我的select是Devart LinqConnect(http://www.devart.com/linqconnect/)。; 该产品与LINQ to SQL(甚至兼容)一样易于使用,同时还提供了像Entity Framework这样的高级ORMfunction。 我更喜欢他们的视觉devise师和他们的ORMfunction:
- 复杂types
- 懒加载
- PLINQ
我面临同样的困境。 LINQ2SQL将给你更多的灵活性和对数据访问的直接控制,但Entity Framework是“企业”解决scheme。 我目前正在尝试 – 亚音速 ,看起来很有希望。
比较ORM – 看看http://ormbattle.net/
我一直在使用entity framework(代码第一)和nHibernate一段时间了,我更喜欢nHibernate,特别stream利。 这似乎给了我更多的灵活性,如何将我的对象映射到数据库。 此外,它还可以更好地控制对象的延迟加载和级联操作。