Допустим, у меня есть следующие объекты, которые отображаются в таблицы базы данных (каждое соответствующее имя свойства может рассматриваться как отношение PK / FK):
public class Person
{
public int PersonID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class Employee
{
public int EmployeeID { get; set; }
public int PersonID { get; set; }
public int Salary { get; set; }
}
public class Executive
{
public int ExecutiveID { get; set; }
public int EmployeeID { get; set; }
public string OfficeNumber { get; set; }
}
public class Contact
{
public int ContactID { get; set; }
public int PersonID { get; set; }
public string PhoneNumber { get; set; }
}
Моя архитектура выглядит следующим образом: Контроллер вызовы Сервис уровень, который вызывает Репозиторий уровень.
У меня есть вид с именем AddExecutive
, который собирает следующую информацию: FirstName, LastName, PhoneNumber, Salary
и OfficeNumber
.
Каков наилучший способ передать эти данные, учитывая мою архитектуру? Я думаю, что я бы опубликовал ViewModel, который содержит всю собранную мной информацию, и передал бы ее методу Service AddExecutive(AddExecutiveViewModel addExecutiveViewModel)
, затем в методе Service я создал бы новые экземпляры Person, Employee, Executive,
и Contact
и прикрепил бы передать их друг другу (Person
объект) и передать ВСЕ данные в метод репозитория AddExecutive(Person person)
. Затем метод Repository просто фиксирует данные. Это звучит правильно? Что было бы лучшим решением?