Entity Framework Core Cascade сохранить
С EF Core2 и Npgsql.EntityFrameworkCore.PostgreSQL у меня есть две сущности Test и TestDependency.
public class Test
{
public int TestId { get; set; }
public DateTime Date { get; set; }
public int Value { get; set; }
public TestDependency TestDependency { get; set; }
}
public class TestDependency
{
public int TestDependencyId { get; set; }
public string Message { get; set; }
}
И мое отображение:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Test>(entity =>
{
entity.HasKey(e => e.TestId);
entity.Property(e => e.Date).HasColumnType("date").IsRequired();
entity.Property(e => e.Value);
entity.HasOne(e => e.TestDependency);
});
modelBuilder.Entity<TestDependency>(entity =>
{
entity.HasKey(e => e.TestDependencyId);
entity.Property(e => e.Message);
});
base.OnModelCreating(modelBuilder);
}
Я создаю миграцию и обновляю базу данных. После этого я создаю "тест" с
[Test]
public void ShouldDSaveTest()
{
var item =new DataAccess.Test { Date = DateTime.Now, Value = 42, TestDependency = new TestDependency { Message = "Lorem ipsum" } };
DBContext.Entry(item).State = EntityState.Added;
DBContext.SaveChanges();
}
В моей базе данных есть тестовая запись с датой и значением, но TestDependencyId равен нулю, и у меня нет записи TestDependency.
Почему EF не сохраняет TestDependency каскадом, как NHibernate?