Не работает связь один-ко-многим EF Core 3
using var db = new Context();
var user = db.Users.Single(e => e.Id == 1); // свойство Posts является null
var post = db.Posts.Single(e => e.Id = 1); // свойство User не является null
public class Context : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<Post> Posts { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseNpgsql("connection string");
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<User>(
o =>
{
o.HasKey(p => p.Id);
});
modelBuilder.Entity<Post>(
o =>
{
o.HasKey(p => p.Id);
o.HasOne(p => p.Creator).WithMany(p => p.Posts).HasForeignKey(p => p.CreatorId);
});
}
}
public abstract class EntityBase
{
public EntityBase()
{
CreatedDate = DateTime.Now;
}
public int Id { get; set; }
public DateTime CreatedDate { get; set; }
}
public class User : EntityBase
{
public string Name { get; set; }
public string Email { get; set; }
public string Password { get; set; }
public List<Post> Posts { get; set; }
}
public class Post : EntityBase
{
public string Description { get; set; }
public int CreatorId { get; set; }
public User Creator { get; set; }
}
По отношению к сущности Post все работает правильно - свойство Creator заполнено необходимым экземпляром, но по отношению к User свойство Posts пустое. Как решить эту проблему?