Entity Framework не сохраняет связанные данные?

Друзья. У меня батхерт от EF Core. Я начинаю негодовать.
Имею 2 сущности
public class Realtor
{
        public Realtor()
        {
            Guid = Guid.NewGuid();
            Registration = DateTime.Now;
        }
        public int Id { get; set; }
        public Guid Guid { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public DateTime Registration { get; set; }
        public int SubdivId { get; set; }
        public Subdiv Subdiv { get; set; }
}

public class Subdiv
{
        public Subdiv()
        {
            Created = DateTime.Now;
        }
        public int Id { get; set; }
        public string Name { get; set; }
        public DateTime Created { get; set; }
        public List<Realtor> Realtors { get; set; }
}


Если понимаете, то видите связь One to Many ( Subdiv => Realtor )

Реализован WebAPI на ASP.NET Core.
Для каждой сущности есть соответствующие методы Add, Del, Change, Get.

И так. Я добавил один Subdiv (TOSTER TM) и получил его ID.
Далее, добавляю один Realtor и в свойство Subdiv запихиваю, найденный по ID, только что созданный TOSTER TM (см. скрин)
vi_EurGNGOo.jpg
На скрине видно, что Break Point стоит после context.SaveChanges(). Это означает, что объект уже в базе, заимел своим Id и т.д... Главное, что я хочу показать - Realtor.Subdiv имеет объект типа Subdiv. Указан даже SubdivId. Ok.

Далее я пытаюсь извлечь и базы только что добавленный Realtor.
По API я передаю ID и ищу объект в базе. К великому счастью - объект найден! (см. скрин)
gQqoSAdIWms.jpg

Но обратите пожалуйста внимание на поле Subdiv ... NULL!!!!!!

Ок. У нас есть обратная связь. Достаем объект Subdiv, которого не хватает в Realtor выше, и смотрим его ListBJ8yVsPrRSQ.jpg

NULL!!!!!!!!!
5483483.jpg

Ладно..
Кстати говоря, что я только не пробовал
1 - помечать атрибутами [Key] и [ForeingKey] необходимые поля
2 - в методе OnModelCreating описывал такие вещи
modelBuilder.Entity<Realtor>(real => {
        real.HasOne(r => r.Subdiv)
        .WithMany(s => s.Realtors)
        .HasForeignKey(r => r.SubdivId);
});

3 - еще что-то..

И ни чего не помогало. Помоги пожалуйста в решение данный проблемы.
  • Вопрос задан
  • 670 просмотров
Решения вопроса 1
Include() ?
А точнее, так:
context.Subdivs.Include(i=>i.Realtor).First(s=>s.Id == id):
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
yarosroman
@yarosroman
C# the best
www.entityframeworktutorial.net тут все есть по.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы