0

目前我正在将一个项目从 MVC 2 更新到 MVC 4,并且我即将用 EF 4.3.1 交换自定义 ORM/数据访问“层”(当它出来时升级到 5),据我所知,大多数控制器使用另一个文件中的函数,这些函数是数据库查询和存储过程的包装器。

所以,我的问题是:我应该使用包装函数删除这个文件并直接使用 EF 从控制器中获取数据,还是应该删除每个函数的内容并用 EF 代码替换它?

你可以给我任何其他的设计技巧吗?

谢谢 !

4

2 回答 2

2

使用存储库模式(正是您正在做的事情)可以让您在未来更加灵活,因为您可以将单个文件替换为使用 NHibernate 或连接到 MySql 的代码。这样,您的代码就不会与 EF 紧密耦合,如果您愿意,您可以更轻松地摆脱它。

话虽如此,存储库模式显然涉及一些编码开销,如果您不关心将代码与 EF 紧密耦合,那么您当然可以走后一条路线。

于 2012-07-08T17:01:00.343 回答
1

我认为这只是选择问题,两者似乎都适用于某些场景。也就是说,我认为对于使用简化数据库访问的类的大型项目,提供通用功能并且可以在需要时更容易地交换为包装其他数据提供者(如 Hibernate)的类。

另外,您可能会添加额外的数据提供者(例如使用其他站点的 API),如果您还将这些数据提供者直接包含到您的控制器中,您将生成非常难以阅读的代码。

这种方法还将显着简化您的控制器,起初这似乎没什么大不了的,但随着更多具有重要功能的控制器将被添加,附加值变得清晰。

于 2012-07-08T17:09:11.347 回答