Добавленная сущность с первым кодом не загружает свойства с ленивой загрузкой

У меня проблема, когда свойство вновь добавленной сущности не загружается лениво, если это требуется сразу после добавления сущности.

Например:

У меня есть объект User с виртуальным свойством JobRole:

public class User
{
    public int Id { get; set; }

    public virtual JobRole JobRole { get; set; }
    public int JobRoleId { get; set; }

    public string Name { get; set; }
}

Затем я добавляю нового пользователя:

public User Add(User user)
{
    var addedUser = _myContext.Users.Add(user);
    myContext.SaveChanges();
    return addedUser;
}

Возвращенная ссылка на нового пользователя затем передается в представление Razor, где оно пытается отобразить JobRole (например, JobRole.Name). В момент, когда пользователь передается в представление, он имеет:

  • JobRoleId правильно установлен в целочисленное значение.
  • JobRole = null

Тогда я бы ожидал, что JobRole будет загружаться лениво, когда используется представлением, но это не так и приводит к исключению с нулевой ссылкой.

Является ли это ожидаемым поведением или есть способ заставить вновь добавленные сущности выполнять отложенную загрузку своих свойств?

Заранее благодарим за любые идеи.

Окружающая среда: Использование Entity Framework 4.2 сначала кода. Включена отложенная загрузка.

14
задан Joe Phillips 7 June 2016 в 00:48
поделиться