ASP.NET Core中的CRUD最佳实践设计DTO是什么?

3
我有一个DTO层用于在API层、数据层和其他层之间传输数据。 我对C#中的DTO设计模式有一个问题。
示例:
public class ProductDTO{
    public int Id {get;set;}
    public string Name {get;set;}
    public decimal Price {get;set;}
    public int CategoryId {get;set;}
    public string Desc {get;set;}
}

我应该为 CRUD 拆分此 ProductDTO 吗?
示例:
public class ProductInsertDTO
{
    public string Name {get;set;}
    public int CategoryId {get;set;}
}

当我传输数据时,对于ProductDTO(500字节)和ProductInsertDTO(293字节)。

但是然后你最终会得到两个对象。为什么你想要那样做呢? - progrAmmar
我通常使用单个对象进行设计,但如果我拆分数据传输对象(DTO),会对系统性能有何影响? - user3836200
1
我认为不应该这样做,否则你会为一个对象创建多个类,从而增加应用程序的大小。尽可能规范化和重复使用对象。在我看来,你可以创建一个抽象或超级类,并将对象扩展到它上面,比如创建一个插入抽象类,这样你就能提取仅用于插入的数据。 - progrAmmar
谢谢@progrAmmar,我会尝试的。你有样例吗? - user3836200
1个回答

0

不需要。对于这么少量的数据来说,网络开销是更大的问题。经验法则是:避免“啰嗦”的通信。最好在一个调用中交换更多的数据,而不是分成多个调用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接