我的C #Windows服务(这是一项服务,而不是MVC Web应用程序!)需要与MYSQL数据库通信。为了简化我的数据层工作,我正在考虑为此目的使用ORM。
那么.Net ORM最适合MYSQL数据库? NHibernate? Subsonic? Entity Framework? LINQ2SQL?还是其他人?
编辑:我使用.Net 3.5
编辑2:首选开源解决方案。
答案 0 :(得分:7)
我完全有偏见,但我会去NHibernate。我通过一些调整来管理使用Access(用于CD传送),Sql Server(用于公司)和MySql(用于笑声)的相同DAL代码。这是几年前的事了,我确实必须确保字段/表名在所有环境中都有效。除此之外,NHibernate做了其余的工作 - 非常棒。
答案 1 :(得分:5)
我无法相信没有人提到Rob Conery s SubSonic !!这应该是所有ORM用户都需要学习的。当然NHibernate有它的支持者,很棒tutorials和很多好点。但是,Subsonic还会自动为您生成DAL,并让您进入业务层,测试和表示层的业务。
答案 2 :(得分:0)
我更喜欢LLBLGen。
答案 3 :(得分:0)
对于mysql细节,NHibernate在mysql中有一个零值日期的小问题。由于我只使用它与MSSQL和postgres,我不知道是否有任何担心。
如果您有使用Java或其他语言的Hibernate或其他ORM的经验,NHibernate或ActiveRecord(基于NHibernate)将会非常熟悉。
答案 4 :(得分:-1)
对于分层开发,我会远离实体框架或LINQ to SQL。话虽如此,我还没有尝试过LLBLGen或NHibernate。