gpt4 book ai didi

c# - 梳理POCO、Repository Pattern、Unit of Work、ORM

转载 作者:太空狗 更新时间:2023-10-30 00:45:54 24 4
gpt4 key购买 nike

我正在阅读有关所有这些主题的废话:

POCO
存储库模式
工作单元
使用 ORM 映射器

好的,我在书籍等中看到了每个的基本定义,但我无法将其全部想象出来。表示示例结构(DL、BL、PL)。

那又怎样,您有包含 CRUD 方法的 DL 对象,然后使用 ORM 将 BL 对象“映射”回您的 DL 对象? DTO 怎么样……它们是您的 DL 对象,对吗?我很困惑。

谁能真正一起解释所有这些或给我发送示例代码?我只是想把它放在一起。我正在确定是使用 LINQ to SQL 还是 EF 4(还不确定 NHibrernate)。

只是没有得到物理层和代码层中的概念以及每种类型的对象包含的内容(只是 DTO 的属性,以及与表字段匹配的核心 DL 类的 CRUD???)。

我只是需要一些指导。我正在阅读 Fowler 的书并开始阅读 Evans,但还不是全部。

最佳答案

我假设 DL - 领域层,BL - 业务层和 PL - 持久层。

如果您需要一个简单的 CRUD 应用程序,则不应使用 DDD 原则。如果您要实现复杂的领域模型,请使用 DDD。

在 DDD 中,DL 和 BL 与域对象/服务中的所有逻辑相结合。否则你将构建一个 Anemic Domain Model .避免属性上的 setter 并仅通过方法调用更改对象,例如 ChangeAddress 而不是 obj.Address = newAddress 或 Activate 而不是 obj.Active = true。

Data-Transfer-Objects 应该只用于与外部服务/UI 的通信。在您的域内,您将仅使用域对象。

我建议使用基于任务的 UI。

在持久层使用什么持久化技术取决于你的需求。在您选择 SQL RDBMS 之前,请先查看 Object-relational impedance mismatch维基百科页面。

有关实现示例,请检查相关问题:

  1. Are there any open source projects using DDD (Domain Driven Design)?
  2. Good Domain Driven Design samples
  3. .NET DDD Example

关于c# - 梳理POCO、Repository Pattern、Unit of Work、ORM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4560270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com