我刚刚开始使用MVC世界,我使用了VS 2010中内置的标准MVC模板。我已经连接了几个控制器和视图,现在我需要进入我的数据库
我有一个非常大的现有SQL Server 2005数据库,已由第三方公司定义。我正在尝试使用报告/管理界面来满足我们特定的公司需求。
所以,我想,最初只是从这个数据库中的几个表中提取一些东西。那么......使用MVC 3,哪些ORM工具可以很好地集成?
我也在尝试使用测试驱动设计方法。我不知道如何处理需要插入/更新/删除数据的测试。这是“模拟”发挥作用吗?
答案 0 :(得分:4)
每个ORM都与Asp.net MVC很好地集成。 asp.net mvc中没有任何东西会使ORM集成变得困难。
您最大的障碍是使用旧数据库。 NHibernate和Entity Framework 4是我唯一知道的两个免费ORM,可以很好地映射到旧数据库。 EF4在映射到遗留数据库方面并不算太差,它在绿色领域开发中效果更好。相比之下,NHibernate几乎可以映射您能想到的任何场景。
测试的简易性主要取决于要使用的数据访问模式。存储库模式很受欢迎,因为它的测试非常友好。不需要嘲笑。
答案 1 :(得分:1)
我强烈建议您使用Castle组件:Windsor,动态代理和活动记录。
您可以基本上模拟数据,因为Active Record创建的模型具有允许您手动或通过动态代理的拦截器操纵它的属性。
汇总存储库和数据服务,以获得对数据访问的更多控制
使用适用的specifition pattern可以轻松进行灵活的查询
在数据服务中使用带有Active Record的Linq,以便能够传递IEnumerable<T>
或规范(可能包含或不包含NHibernate的抽象标准并将它们转换为DetachedCriteria
或者可能包含{{1}或者一个HQL或任何你封装的东西)作为查询
这样,您可以轻松地模拟数据库访问,并更轻松地重构和测试。