Я использую Entity Framework и .Net 4 MVC 3. В моем методе создания на моем контроллере я беру объект сотрудника, который я использую для создания записи в моей базе данных.Entity Framework - создать и использовать свойство навигации
public class Employee
{
public int Id { get; set; }
public int ManagerId { get; set; }
public virtual Employee Manager { get; set; }
}
public ActionResult Create(Employee model)
{
if (ModelState.IsValid)
{
db.Employees.Add(model);
db.SaveChanges();
// Now I want to use the navigation properties
Notification(model.Manager.Name);
}
}
Я отправляю идентификатор менеджера с обратной стороны. Теперь, если я перенаправляюсь на страницу сведений, менеджер был создан - однако, когда я пытаюсь получить доступ к нему, как указано выше, он равен нулю. К чему я должен был прибегнуть, является:
if (ModelState.IsValid)
{
model.Manager = _employeeRepository.Get(model.ManagerId);
db.Employees.Add(model);
db.SaveChanges();
// Now this works
Notification(model.Manager.Name);
}
Однако это не кажется правильным. Разумеется, EF создает для меня объект «Диспетчер», поэтому зачем мне его вручную устанавливать и устанавливать? Я делаю что-то неправильно?
Ok, что имеет смысл сейчас и на самом деле, кажется, правильно! Благодарю. – Terry