【发布时间】:2010-07-23 15:01:57
【问题描述】:
我正在尝试开始使用存储库模式和 ASP.NET MVC,但我不禁相信我遗漏了一些东西。如果这是一个愚蠢的问题,请原谅我,但在我看来,实现会以指数方式违反 DRY。例如,在我(诚然是新手)的理解中,为了实现这一点,我必须:
- 创建我的数据库模型(目前使用 Linq to Sql)
- 为每个概念(表或相关表组)创建一个 IRepository
- 为每个 IRepository 创建一个实现
- 我们返回 L2S 对象还是某种 DTO?
- 创建作为容器或数据副本的视图模型
- 在控制器上使用某种 DI 方法(Windsor 还是 Unity?)
虽然我意识到可扩展性和可移植性是有代价的,但感觉就像我错过了什么?
【问题讨论】:
-
您可以创建一个通用存储库,并简单地实现您需要的特定...
-
您可能想查看 MVC 或 BlogEngine.NET 的 Ninject 网站源代码(在 Nate Kohari 的 Github 上),它在 ASP.NET WebForms 中实现了存储库模式(实际上 Mads 将它实现为类库,所以它当您没有控制器和视图等所有 MVC 东西时更容易理解)。
标签: asp.net-mvc repository-pattern