哪个数据框架更适合ASP.NET MVC站点 - LINQ to SQL或NHibernate

Pau*_*der 10 nhibernate asp.net-mvc linq-to-sql

我们即将开始一些ASP.NET MVC开发,并且多年来一直在使用我们自己的实体框架.但是我们需要支持的不仅仅是我们的实体框架能够支持,所以我想得到一些关于使用MVC和更强大的框架的意见.我们已经缩小或选择NHibernate(使用Fluent API)或LINQ to SQL.

哪个框架最适合MVC风格开发(我知道SO使用LINQ to SQL)?

如果我们想要支持SQL Server,Oracle,MySQL - 是否会排除LINQ to SQL?

小智 6

作为刚刚从LINQ切换到SQL的人(流利的)NHibernate,这里有一些我注意到的事情.

  1. LINQ to SQL花了很长时间才弄清楚如何做一个等价的连接子类.经过多次修改后,我在某处读到了这是不可能的.如果所有列都在同一个表中,它只能映射继承.如果有几列,这很好,但在我的情况下有很多,子类是其他子类的父类,依此类推.为了我的ORM,为什么要把它们全部放在一张桌子里呢?

  2. 来自经验的NHibernate一直很健壮(有时对于小型快速项目来说太多了)虽然通过小项目熟悉它,但我觉得它可能太多了,因为我可以生成一个DBML文件并且可以进入SQL 分钟.

  3. 流利的NHibernate.充分利用两个世界(在我的情况下).我可以按照我想要的方式映射,并以我想要的方式拥有我的数据库,而不必在我的域或数据模型中妥协.还有一个词:自动化......锦上添花.

一旦我找到了限制并且使用LINQ to SQL遇到了一些障碍,我将不得不使用另一个ORM,但是Fluent NHibernate使这个选择变得容易,我不认为我会留下它,除非有什么事情发生了工作更好.

所以,就像Rob Scott所说,问题是你如何抽象你的域=>数据模型?您是从域名还是数据库开始的?关系有多复杂?如果你有任何继承,我会说只需要一个更丰富的ORM框架,并保存自己的悲伤.

流利的NHibernate有一些我见过的最好的文档,并且有很多支持,笔记,博客和资源,它自憎地做任何事情...... IMO!我在不到24小时内就开始跑步了.

哦,如果你是NHibernate的新手拿起NHibernate in Action书来帮助润滑车轮,尽管这个框架也有很多帮助.

工具无效的最佳指示是当你必须使用工具时... LINQ to SQL我正在定制,阅读白皮书,各种疯狂并拒绝生成适当的查询,就在我被诱惑时修改我的表和域名,我说让我给Fluent一个旋转,我很高兴我做了.

祝你好运..对不起,回复很久; 这已经过去了五天左右,所以我想我还是赶上了:-)

  • 这正是我想要学习的那种经历.我倾向于在域模型中思考 - 而不是db.我们内部构建的ORM工具可以很好地处理多个表中的继承,所以我习惯于使用它.看起来我选择追求流利的nHibernate是正确的. (2认同)

Stu*_*lds 4

我使用 Fluent NHibernate 和 MVC 的依赖注入(在我的例子中是 Ninject)取得了巨大的成功。

在我看来,任何成熟的 ORM 都应该能够很好地与 MVC 配合使用。由于 MVC(模型/视图/控制器)的本质将这三个问题分开,因此任何 ORM 都应该非常适合“模型”角色。