Итак, я создаю простое приложение MVC, которое использует класс Absence в качестве модели, которая содержит различные свойства, включая объект из класса Employee, - другую модель, которая содержит различные свойства:
public class Absence
{
public int Id { get; set; }
public string Reason { get; set; }
public int Day { get; set; }
public int Month { get; set; }
public bool isApproved { get; set; }
public int employee_Id { get; set; }
public virtual Employee employee { get; set; }
public Absence()
{
employee = new Employee();
}
}
И ясоздал контроллер, который имеет функцию ActionResult для представления create:
[HttpGet]
public ActionResult Create()
{
Absence abs = new Absence();
return View(abs);
}
[HttpPost]
public ActionResult Create(Absence abb)
{
Employee emp = database.Employees.FirstOrDefault(z => z.Id == abb.employee_Id);
System.Diagnostics.Debug.WriteLine(emp.Name);
abb.employee.Name = emp.Name;
abb.employee.Surname = emp.Surname;
System.Diagnostics.Debug.WriteLine(abb.employee.Name);
database.Absences.Add(abb);
database.SaveChanges();
return Redirect("/Absence");
}
Идея состоит в том, чтобы поговорить с базой данных, найти объект Employee с тем же EmployeeId и установить имя и фамилию объекта employee объектаОбъект abb будет таким же, и после тестирования его с помощью отладчика я вижу, что он работает.
Однако, когда я хочу отобразить все добавленные отсутствия, включая имя и фамилию своего сотрудника, следующим образом:
public ActionResult Index()
{
return View(database.Absences.ToList());
}
Имя и фамилия всех сотрудников не отображаются.
Похоже, что все свойства сохраняются в базе данных с использованием структуры объекта, за исключением объекта Employee.
Есть идеи как его сохранить?