Пустое навигационное свойство

У меня есть класс Profile и Event отношение многое-к-одному. Вот так это выглядит

 public class Profile
    {
        public Profile()
        {
            EventsIAmWho = new List<Event>();
            EventsIAmWhere = new List<Event>();
        }
        public int Id { get; set; }
        public virtual ICollection<Event> EventsIAmWho { get; set; }
        public virtual ICollection<Event> EventsIAmWhere { get; set; }  
    }


  public class Event
    {
        public int Id { get; set; }
        public int WhereProfileId { get; set; }
        public int WhoProfileId { get; set; }

        public virtual Profile WhereProfile { get; set; }

        public virtual Profile WhoProfile { get; set; }
        public string Text { get; set; }
        public DateTime Posted { get; set; }
    }

Далее я связываю эти таблицы через Fluent API:

protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            modelBuilder.Entity<Profile>(b =>
            {
                b.HasKey(o => o.Id);
                b.Property(o => o.Id).ValueGeneratedOnAdd();
                b.HasMany(p => p.EventsIAmWho).WithOne(c => c.WhoProfile).HasForeignKey(x => x.WhoProfileId);
            });
            modelBuilder.Entity<Profile>(b =>
            {
                b.HasMany(p => p.EventsIAmWhere).WithOne(c => c.WhereProfile).HasForeignKey(x => x.WhereProfileId);
            });
            foreach (var relationship in modelBuilder.Model.GetEntityTypes().SelectMany(e => e.GetForeignKeys()))
            {
                relationship.DeleteBehavior = DeleteBehavior.Restrict;
            }
    }

После миграции и обновления Базы данных, получаю пустое навигационное свойство Events: userProfile = _context.Profiles.Where(x => x.Id == id).Include(e => e.EventsIAmWhere).FirstOrDefault();

В SQL Profiler просто отсутствует нужный JOIN к таблице Events: введите сюда описание изображения

Что я делаю не так?


Ответы (0 шт):