类名:添加DTO或实体

本文关键字:实体 DTO 添加 类名 | 更新日期: 2023-09-27 17:50:59

是否优先将DTOEntity附加到类名?

这有什么标准吗?

一个类由ORM (EntityFramework)使用,另一个类用于序列化。

这样做的原因是没有重复的所有字段,因为EntityFramework是DTO类(大多数但不是所有属性)的包装器。

DTO类位于共享库中,与EF解耦。

。哪一种是最常见/标准的方法?

// 1.
MyNamespace.Entities.MyClass
MyNamespace.Models  .MyClassDto

// 2.
MyNamespace.Entities.MyClassEntity
MyNamespace.Models  .MyClass

// 3.
MyNamespace.Entities.MyClassEntity
MyNamespace.Models  .MyClassDto

类名:添加DTO或实体

根据我的个人经验,你的第三个例子是我唯一使用过的实现,它是我要争论的,因为你正在使用的对象的意图总是很清楚,而其他两个只有在一起查看两个对象时才会变得清晰。

也就是说,只要你的团队就使用哪一种方法达成一致就可以了。

在我看来,您通常不希望将实现细节放入类名中,原因与您不想使用匈牙利符号的原因相似。

如果有一些代码需要同时处理这两种类型并区分它们,另一个选择是包含别名使用语句,如:

using entities = MyNamespace.Entities;
using dto = MyNamespace.Models;
//in code
var myClassEntity = new entities.MyClass();
var myClassDto = new dto.MyClass();
//work with both

我的假设是需要同时使用这两种类型的代码被限制在一个独立的库中,并且客户端代码通常使用一种类型,而不是同时使用两种类型。