.NET 的 SOLID DDD ORM 请求(使用干净的实体和存储库)

Posted

技术标签:

【中文标题】.NET 的 SOLID DDD ORM 请求(使用干净的实体和存储库)【英文标题】:SOLID DDD ORM request (to use clean entities and repositories) for .NET 【发布时间】:2009-12-31 07:06:33 【问题描述】:

有没有 ORM 可以

保持我的实体类干净,没有任何属性和类的属性 不会是 ActiveRecord 模式,所以它不应该有 entity.Save/Delete 等。

可选:能够执行存储过程并将结果解析为实体

【问题讨论】:

您是否针对任何特定平台/语言/框架?例如。 .NET、Java? 【参考方案1】:

听起来 NHibernate 就是您所需要的。这使用映射文件(在 XML 中)将类的属性映射到数据库。实体通过 SessionManager 接口进行管理。

文档是here。

映射文件也可以从存储过程映射到您的持久对象。详情here.

【讨论】:

这些链接指向旧 (1.2) 版本的 NHibernate。更多最新文档在这里:nhforge.org/doc/nh/en/index.html 马克 - 我同意关于实体框架的“观望”。 同意。然而,映射也可以使用属性(这不是 POCO,也不是提问者想要的)和 C# (fluentnhibernate.org) 来完成。【参考方案2】:

您所寻找的通常称为持久性无知。似乎首选的框架是 NHibernate,所以我支持 Jeremy McGee 的回答。

为了完整起见,我想指出微软的实体框架将在下一个版本 (.NET 4) 中获得持久性无知 - 他们称之为 POCO 支持。它是否真的会有任何好处还有待观察......

【讨论】:

以上是关于.NET 的 SOLID DDD ORM 请求(使用干净的实体和存储库)的主要内容,如果未能解决你的问题,请参考以下文章

ORM中的Model与DDD中的DomainModel

实现领域驱动设计

下划线 动画

asp.net core系列 63 领域模型架构 eShopOnWeb项目分析 上

AutoMapper(4.2+)Profile是逻辑还是基础设施的一部分?

asp.net core系列 64 结合eShopOnWeb全面认识领域模型架构