查询对象-哪一层?

问题描述 投票:0回答:1

[我正在阅读这篇文章[1],该文章涉及通过使用查询对象来摆脱存储库并直接(特别是EF)接受ORM。

然后,Onion体系结构/ Clean体系结构的哪个层将属于Query对象?我以某种方式感到它们属于域核心,但想再次检查。

[1] https://lostechies.com/jimmybogard/2012/10/08/favor-query-objects-over-repositories/

design-patterns orm clean-architecture
1个回答
0
投票

Clean ArchitectureOnion Architecture方法中,无法使用Query objects,因为对象是业务规则/域的一部分,而ORM /存储库是基础结构/外部接口的一部分。

查看Onion Architecture描述和Clean Architecture描述。两种方法都明确指出:业务对象独立于外部资源。允许业务对象知道如何从数据库中保存/检索自身,完全违反了所提到的声明。

顺便说一下,链接中的文章说

我认为在您的ORM上创建抽象并没有多大价值,如果您直接在UI层中使用ORM,我也不认为这很糟糕。

直接在UI层中使用ORM是一个非常糟糕的决定,最好不要做这样的事情,并且明确地将责任层分开。我建议您不要遵循该文章中的信息。

© www.soinside.com 2019 - 2024. All rights reserved.