使用存储库/服务模式和MVC时缓存数据对象
时间:2020-03-06 14:26:33 来源:igfitidea点击:
我有一个基于MVC的站点,该站点使用存储库/服务模式进行数据访问。
服务被编写为可在大多数应用程序(控制台,winform和Web)中使用。当前,控制器直接与服务通信。这限制了应用适当的缓存的能力。
我看到以下选项:
- 为该Web应用程序编写一个包装程序,该包装程序实现进行缓存的IWhatEverService。
- 通过缓存每个操作的ViewData在每个控制器中应用缓存。
- 不必担心数据缓存,只需为每个Action实现OutputCaching。
我可以看到每种方法的优缺点。最好的做法是/应该使用存储库/服务进行缓存
解决方案
最简单的方法是在存储库提供程序中处理缓存。这样,我们无需在应用程序的其余部分中更改任何代码;事实是,数据是从缓存而不是存储库中提供的。
因此,我将创建一个接口,供控制器用于与后端进行通信,并在此实现中添加缓存逻辑。用一些DI将所有内容打包成一个漂亮的蝴蝶结,然后将应用设置为易于测试。
检查我的缓存服务实现:
如何在MVC应用程序中缓存数据
(我不想在这里重复回答...)
随意发表评论!