Пустая ссылка структуры объекта на объекте внешнего ключа - PullRequest
2 голосов
/ 19 марта 2012

Я использую Entity Framework Code First v 4.3.0

У меня есть две сущности с отношениями один ко многим

, например

  public class User
  {
    [Key]
    public virtual string Username { get; set; }

    public virtual ICollection<Vacation> Vacations { get; set; }
  }

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

    public virtual User User { get; set; }

    public virtual string UserUsername { get; set; }

  }

Таким образом, сценарий «Пользователь» создается с именем пользователя «User1». Впоследствии создается отпуск с полем UserUsername, установленным на «User1». Итак, у нас есть отношения.

Если я затем запрашиваю базу данных после того, как отпуск сохранен для нового пользователя отпуска, будет нулевым.

Если я избавлюсь от DbContext и обновлю его. Требование для отпускного пользователя установлено.

Есть идеи, почему это может быть?

1 Ответ

2 голосов
/ 27 марта 2012

ОК, позвольте мне попытаться объяснить, в чем проблема.

Microsoft говорит, что Если отложенная загрузка включена, и связанный объект уже загружен, он не будет загружен снова.

Полагаю, именно этот дизайн вызывает у меня проблемы.

Я создаю свой новый отпуск, устанавливаю UserUsername равным «User1» и нажимаю «Сохранить». Затем я запрашиваю DbContext для нового отпуска. Поскольку этот объект уже загружен в контексте моего DbContext, он не перезагружается, поэтому пользователь имеет значение null.

Если я создал новый DbContext и выполнил тот же запрос, пользователь заполняется.

Надеюсь, это имеет смысл.

...