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?

0 ответов

Другие вопросы по тегам