为DTO / POCOS添加前缀 - 命名约定?

时间:2009-07-02 16:52:13

标签: c# naming-conventions poco dto

简单的问题,我真的想知道任何人在DTO / POCOS上放置的命名约定....

我真的不想像匈牙利符号那样添加前缀..我摆脱了它!。

但是我的dtos命名与我实际返回的对象名称发生了冲突,尽管它们位于不同的命名空间中,但它仍然有点令人困惑..

我想知道任何人适用的命名约定

例如我的客户对象称为客户

我做了一个映射到dto ......这是客户..我在想DtoCustomer ..

不确定

任何人?

4 个答案:

答案 0 :(得分:20)

我更喜欢使用命名空间。使用命名空间别名可以使它更加清晰。

这会使代码看起来像:

Customer myCustomer = new Customer();
Dto.Customer dtoCustomer = ....;

如果我完全在DTO层工作,我现在仍然可以与“客户”合作。

答案 1 :(得分:13)

根据我的经验,DTO通常是您的域实体所代表的数据的子集或聚合。这通常是因为域实体是丰富的,高度相互关联的,具有行为和数据的复杂对象。因此,我尝试命名我的DTO,以尽可能多地反映它们所代表的信息子集。对于客户而言,我经常会根据所要求的信息对DTO进行微调:

  • CustomerHeader
  • 为CustomerDetail
  • CustomerWithRecentOrders
  • CustomerAndBill

在上面的示例中,CustomerHeader可能只包含客户ID和名称,通常用于在简单列表中显示客户。 CustomerDetail将包含大多数客户信息,但不包含完整的Customer实体可能包含的任何关系属性。其他应该是自我解释,这是最终目标。

答案 2 :(得分:7)

我比DtoCustomer更喜欢CustomerDto。喜欢让它们彼此相邻排列。

但是命名也可以取决于DTO的用法。例如,在ASP.NET MVC中,我经常调用发送到CustomerViewModel视图的DTO。

答案 3 :(得分:2)

我通常在这种情况下附加DTO。