Друзья. У меня батхерт от 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 (см. скрин)
На скрине видно, что Break Point стоит после context.SaveChanges(). Это означает, что объект уже в базе, заимел своим Id и т.д... Главное, что я хочу показать - Realtor.Subdiv имеет объект типа Subdiv. Указан даже SubdivId. Ok.
Далее я пытаюсь извлечь и базы только что добавленный Realtor.
По API я передаю ID и ищу объект в базе. К великому счастью - объект найден! (см. скрин)
Но обратите пожалуйста внимание на поле
Subdiv ... NULL!!!!!!
Ок. У нас есть обратная связь. Достаем объект Subdiv, которого не хватает в Realtor выше, и смотрим его List
NULL!!!!!!!!!
Ладно..
Кстати говоря, что я только не пробовал
1 - помечать атрибутами [Key] и [ForeingKey] необходимые поля
2 - в методе OnModelCreating описывал такие вещи
modelBuilder.Entity<Realtor>(real => {
real.HasOne(r => r.Subdiv)
.WithMany(s => s.Realtors)
.HasForeignKey(r => r.SubdivId);
});
3 - еще что-то..
И ни чего не помогало. Помоги пожалуйста в решение данный проблемы.