在阅读和编辑时对DTO感到困惑如何设计DTO以便在VUEjs应用中填写表格?

问题描述

我正在尝试开发企业级应用程序。我有域和应用程序服务。我已经为多个目的分别创建了我的DTO。但是从API的角度来看,应该使用哪种方式感到困惑。

我有复杂的对象可以说

public class Entity{
   public int Id { get; set; }
   public string Name { get; set; }
   public int? ManufacturerId { get; set; }
   public virtual Manufacturer Manufacturer { get; set; } 
}

public class Manufacturer{
   public int Id { get; set; }
   public string Text { get; set; }
}

现在我已经设计了具有合成功能的相应DTO。以前是分开的。

public class EntityBaseDto{
   public string Name { get; set; }
}

public class EntityReadDto : EntityBaseDto{    
    public string Manufacturer { get; set; }
}

public class EntityWriteDto : EntityBaseDto{    
    public int? ManufacturerId { get; set; }
}

现在的问题是,

我有一个List<EntityReadDto>填充的表格,很明显。以前,EntityReadDto的{​​{1}}也包含ID和文本。每当我需要编辑表中的一项时,便能够加载下拉列表中的所选项目或标签列表,以及带有附加在ReadDtos中ManufacturerDto对象上的ID的列表。现在不可能了。由于我想简化代码,所以我只将它们转换为只读字符串。现在,我创建了另一个端点,以便在需要时获取记录的可编辑版本。例如:单击特定项目上的编辑时,将使用Manufacturer来填写表格。该操作将在该DTO上进行,并与PUT类型请求一起发送以编辑记录。

对于这种情况,我不确定这种方法是否可行。最佳做法是什么?我有许多与其他表中的实体相关的对象。可以打电话从后端获取可编辑的版本,还是需要立即在VUEjs应用中使用它?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)