类名:附加DTO或实体

时间:2015-05-28 17:14:26

标签: c# serialization naming-conventions dto

DTOEntity附加到班级名称是否有任何偏好?

这有什么标准吗?

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

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

DTO类位于共享库中,并与EF分离。

E.g。以下哪种是最常见/标准的方法?

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


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


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

2 个答案:

答案 0 :(得分:1)

根据我的个人经验,你的第三个例子是我曾经使用过的唯一一个实例,它是我要争论的那个,因为你正在使用的对象的意图总是很清楚,而另外两个只是变得清晰当一起看两个物体时。

只要您的团队达成协议,任何可以使用的协议都可以。

答案 1 :(得分:1)

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

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

using entities = MyNamespace.Entities;
using dto = MyNamespace.Models;

//in code
var myClassEntity = new entities.MyClass();
var myClassDto = new dto.MyClass();

//work with both

我的假设是需要使用这两种类型的代码仅限于隔离库,而客户端代码通常适用于一种,而不是两种类型。