ASP. Net Web API: что делать с дублированием свойств между объектами DTO и Domain - PullRequest
0 голосов
/ 14 марта 2020

Допустим, у меня есть концепция ToDoItemModel, как показано ниже:

public class ToDoItemModel
{
   public int Id { get; set; }
   public DateTime DateAdded { get; set; }
   public string Title { get; set; }
}

Это будет мой объект DTO. Мне также нужно иметь возможность вызывать несколько методов для ToDoItem, например TransformTitle() или перезаписанного свойства ToString():

public class ToDoItem
{
   public int Id { get; set; }
   public DateTime DateAdded { get; set; }
   public string Title { get; set; }


   public void TransformTitle(){
       this.Title = TranformationLogic();
   }

   public override string ToString()
   {
       return this.Title;
   }
}

Я планирую использовать ToDoItemModel в качестве DTO в контроллере (когда информация отправляется с клиента. ToDoItem будет использоваться для запуска некоторой логики c данных перед сохранением в БД.

Однако мы получили дублирование происходит между моделью и объектом Domain (с точки зрения их свойств publi c). Это не кажется правильным. Каков наилучший способ устранения этого дублирования? Должна ли модель быть каким-либо образом передана в ToDoItem?

...