关于选择合适的ORM的困惑?

Any*_*are 2 c# asp.net nhibernate entity-framework linq-to-sql

我使用ASP.NET和informix数据库.

我使用一组编写的类来处理连接,CRUD操作,事务等....

现在,我觉得这些课程不是最好的选择,性能较差,花费大量时间并且有许多缺点.


我想使用ORM,但我不知道如何选择适合我的Web应用程序的那个(ASP.NET,Informix).

请帮助选择方便的ORM.

我对nHibernate,Entity Framework,LINQ To SQL和Open Access(Telerik组件)感到困惑.

注意:我将使用Visual Studio 2012,所以我想要最近的比较.

Oyb*_*bek 10

我真的建议实体框架,因为它是.NET的原生框架.这里说明了一个Informix提供商可用于EF.

  • EF很棒(易于使用,有很多数据库提供程序,开箱即用或在这里和那里的免费项目,有一个完美的LINQ提供程序)但也缺乏明显的东西,如事件,日志记录,缓存或批量插入/更新.此外,代码优先是非常新的,我没有机会用它来测试它. (3认同)

Jef*_*ner 5

http://www.ibm.com/developerworks/data/library/techarticle/dm-0903linqentity/

上面的链接将为您提供下载informix提供程序的链接,并指导您将informix提供程序与Entity Framework结合使用的分步过程.

有关实体框架的更多信息,请访问 http://msdn.microsoft.com/en-us/library/aa697427(v=vs.80).aspx

简而言之,一旦完成此设置,您将能够创建映射到informix数据结构的类并使用linq执行查询.EF是一个非常强大和有用的工具,我推荐它.


Ber*_*tie 5

你有没有想过使用Fluent NHibernate?网上有大量的文章,而且很多!这是一篇这样的文章:转换为Fluent NHibernate sessionmanager.

编辑:

一直在考虑你的情况,我会告诉你我通常的想法.首先,我会想到我希望我的网关层确实是什么(这是我用来与持久性媒体交谈的层).现在,大多数人会说,我希望它与数据库交谈,或者我想插入和更新内容.但最近,我发现这还不够!在考虑到这些问题的编码网关层的过程中,我突然意识到我想做一些有点不同的事情,并且热潮,我不能很容易地使用NHibernate.因此,我做了一些让步并使用Linq-ToSql,因为它支持对NHibernate的一些细节的更高优先级要求.

现在,我的故事的原因是:NHibernate提供了一些很棒的小功能,如结果转换.我可以在我的Db上看到大量已连接的表格,为每个字段提供一个别名,并且有一个可爱的结果变换器,爆炸,它立即转换为我的DTO.现在,不要误解我的意思,Linq-To-Sql与自动生成的类有类似的东西.但我不希望这些可见的网关层外(另一个对话).同样,Linq-To-Sql轻松处理事务 - 我认为NHibernate并没有这么做!

所以,这一切归结为:我的网关/存储库层中的EXACT要求是什么?哪些技术与我的持久性媒体兼容?!现在,我可以考虑一下我想要使用的技术.

我知道我本来可能没有回答你的问题,但我希望它能给你一些思考的东西!

快乐的编码,干杯,
克里斯.