在哪个API层(存储库/服务)中放置自定义SQL查询逻辑



我正在构建一个API,在这个API中,我需要与持久化方式有很大不同的数据(每次访问DB时,我都要进行5-10次连接,无法通过代码执行,因为这需要太长时间(。

我使用的是控制器服务存储库体系结构,并且我在一些来源中读到,存储库应该只包含基本的CRUD操作。

鉴于此:

  • 它们应该处于存储库级别还是服务级别
  • 有没有其他方法可以构建更适合这个用例的代码

使用标准的N层架构(在您的情况下,N=3,最常见(;自定义";SQL代码当然会进入最底层,即存储库。

我现在的建议是不要将这些SQL查询保留在代码中,而是将它们移动到存储过程中。你会得到很多好处,而不仅仅是性能。

存储库应该包含您需要的方法。创建适当的抽象并自由活动:(

另一种选择是使用CQRS,我一直强烈鼓励在系统经过简单的CRUD时使用CQRS。

相关内容

  • 没有找到相关文章

最新更新