1
2
我想回答3… 我觉得它不那么“臭”,更“懒”。这是一个典型的“存储库”,我在互联网上看到过…
据我所知,这不是一个存储库,而是一个“会话”或“工作单元”。这是一种方便的方法,可以抽象出您使用的任何数据库技术,而只需与一个非常通用的接口进行交流。所以我们把它重命名为
在这个设置中,
希望这有帮助。 |
2
2
我们目前正在将ef与ddd结合使用,但我不得不说,在当前的实现中,ef不太适合这种体系结构。主要的问题是,ef当前工作的唯一方式是让每个“实体”从ef特定的基类派生。 另一方面,存储库的关键是 摘要 放弃数据访问技术。DDD背后的全部思想是域模型应该 无约束的 通过实现细节,如数据访问技术的选择。这意味着应该定义域对象,使它们成为不知道持久性的对象。 换句话说:您不能将ef“entities”用作域对象,因此在DAL中,必须手动编写许多代码,将域对象与ef“entities”之间的映射映射。很快就累了。 我肯定会认为在存储库上使用iQueryable是一种泄漏的抽象,用ddd的说法,它没有多大意义。如果域对象是内聚单元,那么只从中选择某些“列”就没有什么意义。 在EF for.NET 4.0中,我们会受到持久性的忽视,因此它在将来会变得更好… |
3
0
|
Tony Raimo · 域实体是否应该调用存储库? 7 年前 |
Seb · DDD只读存储库返回“值对象” 7 年前 |
tlt · 使用嵌套对象和大集合进行聚合根优化 7 年前 |
PatrickSJ · DDD,状态对象/值对象 7 年前 |
msmani · DDD更改聚合根id 7 年前 |
DuskMcDusk · 逻辑和性能中的聚合根冲突 7 年前 |