我的C#Windows服务(这是一项服务,而不是MVC Web应用程序!)需要与MYSQL数据库对话。 为了减轻我的数据层工作量,我正在考虑为此使用ORM。
那么哪个.NET ORM最适合使用MySQL数据库呢? NHibernate? 亚音速? 实体框架? LINQ2SQL? 还是其他?
编辑:我使用.Net 3.5
编辑2:首选开源解决方案。
我完全有偏见,但是我会去NHibernate。我设法进行了一些调整,以使相同的DAL代码可与Access(用于CD交付),Sql Server(用于企业)和MySql(可笑)一起使用。这是几年前的事,我确实必须确保字段/表名在所有环境中均有效。除此之外,NHibernate做了其余的事情-很棒。
我确实必须确保字段/表名在所有环境中均有效。请仔细说明,以便我知道如何避免这些陷阱...
我已经将NHibernate与mySql5和4一起使用了,对我来说一切都完美无缺。 +1
我在项目中使用NHibernate,这真是很棒的经验!
我们一直在使用Fluent NHibernate,它非常易于使用。
我不敢相信没有人提到Rob Conerys SubSonic!对于所有ORM用户,都必须进行研究。当然,NHibernate具有支持者,出色的教程和很多优点。但是Subsonic还会自动为您生成DAL,并将您留给业务层,测试和表示层的业务。
对于mysql细节,NHibernate在mysql中具有零值日期的小问题。由于我仅将其与MSSQL和postgres结合使用,因此我无法确定是否有任何担心。
如果您有Hibernate或Java或其他语言的其他ORM的经验,则NHibernate或ActiveRecord(基于NHibernate)会感到非常熟悉。
我更喜欢LLBLGen。
好的解决方案...但是不幸的是它不是免费的
哦,我不知道你想要免费。 :)
对于分层开发,我将不再使用实体框架或LINQ to SQL。话虽这么说,我还没有尝试过LLBLGen或NHibernate。
只是说那不会带来太多价值,一个理由会有所帮助。