数据访问mvc3

时间:2011-05-07 05:08:27

标签: linq nhibernate asp.net-mvc-3 entity-framework-4

问题: 我正在构建(或尝试构建)企业级Web应用程序的前端。现有结构由存储过程驱动(sql 2008 db)。存储过程实现为最终处理执行的类,结果作为对象返回。 我是这个游戏的新手,欢迎解释我的时间将如何得到最好的服务...我读了一个存储库模式是一种最佳实践,但我阅读的所有例子都实现了Entity Framework或Linq等。我需要一个ORM?为什么或者为什么不?我希望能够拥有最大的性能环境,以便用户可以使用这些结果集。提前谢谢

2 个答案:

答案 0 :(得分:1)

你的问题有点不清楚。存储过程是存储在数据库中的SQL查询,用于与数据交互。但是,听起来你已经有了一个现有的数据访问层(DAL),它使用存储过程并返回给你玩的对象。如果是这种情况,我不会丢弃整个数据访问层并将其替换为EF或任何其他ORM。除非现有的DAL因设计或性能原因不适合您,否则没有理由重新发明轮子。

答案 1 :(得分:1)

好吧,我建议你决定用例。

nHibernate / ORM通常不适合的一些事情是:

  1. 批处理作业。
  2. 报告
  3. 因此,如果您的工作主要涉及其中任何一项,那么您最好不要浪费时间,可以说有多种策略没有任何问题......构建域模型非常适合简化复杂的业务规则,性能通常情况也很好......报告和批处理工作可以单独构建,没有理由不同的策略不能共存......但是我会竭尽全力让它们解耦...

    因此,如果您有一个庞大的业务逻辑层,并且在您的存储过程中充斥着数据集/数据访问代码和业务逻辑,那么您可能会发现投资ORM值得花些时间,但请考虑它重新分解步骤... IE你正在改进现有代码并在扩展它之前使其可测试...

    在任何情况下都没有一个“最佳”的答案,我在以前的公司做过的最聪明的事情就是在任何看似对功能有意义的数据访问模式中构建新功能(当然是测试驱动)。保持接口清洁和分离......在这样做了一段时间后,通常很明显哪种策略/模式最适合整个应用......

    祝你好运