2

我刚开始接触 MVC 世界,我使用了一个内置于 VS 2010 中的标准 MVC 模板。我已经连接了几个控制器和视图,现在我需要访问我的数据库。

我有一个相当大的现有 SQL Server 2005 数据库,已经由第 3 方公司定义。我正在尝试为我们的特定公司需求添加一个报告/管理界面。

所以,我想,最初只是从这个数据库的几个表中提取一个列表。那么......使用 MVC 3,有哪些 ORM 工具可以很好地集成?

我也在尝试使用试驾设计方法。对于需要插入/更新/删除数据的测试,我不确定该怎么做。那是“模拟”发挥作用吗?

4

2 回答 2

4

每个 ORM 都很好地与 Asp.net MVC 集成。asp.net mvc 中没有任何东西会使 ORM 集成变得困难。

您最大的障碍是使用遗留数据库。NHibernate 和 Entity Framework 4 是我所知道的唯一两个免费的 ORM,它们很好地映射到遗留数据库。EF4 在映射到遗留数据库方面并不算太差,它只是在绿色领域开发中工作得更好。相比之下,NHibernate 几乎可以映射您能想到的任何场景。

测试的难易程度主要取决于使用哪种数据访问模式。存储库模式很受欢迎,因为它对测试非常友好。不需要嘲笑。

于 2011-02-07T19:27:07.473 回答
1

我强烈建议您使用 Castle 组件:Windsor、Dynamic Proxy 和 Active Record。您基本上可以模拟数据,因为 Active Record 创建了一个具有允许您手动或通过动态代理的拦截器操作它的属性的模型。打包存储库和数据服务,以更好地控制您的数据访问。
在适用的情况下使用规范模式以轻松进行灵活查询。
在您的数据服务中将 Linq 与 Active Record 一起使用,以便能够传递IEnumerable<T>或规范(可能会或可能不会包装 NHibernate 的抽象标准并将它们转换为DetachedCriteria或可能包含DetachedCriteriaHQL 或您封装的任何内容)作为查询。
这样您就可以轻松地模拟您的数据库访问并更轻松地重构和测试。

于 2011-02-07T17:31:33.887 回答