Например:
Код: Выделить всё
public class LineConfiguration : IEntityTypeConfiguration
{
public void Configure(EntityTypeBuilder builder)
{
// Temporal table setup
builder.ToTable(b => b.IsTemporal());
// Primary Key
builder.HasKey(x => x.Id);
builder.Property(x => x.Id)
.HasDefaultValueSql($"NEXT VALUE FOR {BillOfLadingDbContext.LineIdSequence}")
.HasColumnOrder(0);
// Auditing
builder.Property(x => x.Created)
.HasColumnOrder(1);
builder.Property(x => x.Modified)
.HasColumnOrder(2);
builder.Property(x => x.CreatedBy)
.HasColumnOrder(3);
builder.Property(x => x.ModifiedBy)
.HasColumnOrder(4);
// Versioning
builder.Property(x => x.Version)
.IsRowVersion()
.HasColumnOrder(5);
// Soft-delete
builder.Property(x => x.IsDeleted)
.HasColumnOrder(6);
// Property settings
builder.Property(x => x.Quantity)
.HasColumnOrder(7);
builder.Property(x => x.UnitOfMeasureId)
.HasColumnOrder(8);
builder.Property(x => x.Ordinal)
.HasDefaultValue(999)
.HasColumnOrder(9);
builder.HasOne(x => x.UnitOfMeasure)
.WithMany()
.HasForeignKey(x => x.UnitOfMeasureId)
.OnDelete(DeleteBehavior.Restrict);
builder.HasMany(x => x.LineItems);
}
}
Код: Выделить всё
b.ToTable(tb => tb.IsTemporal(ttb =>
{
ttb.UseHistoryTable("LinesHistory");
ttb
.HasPeriodStart("PeriodStart")
.HasColumnName("PeriodStart");
ttb
.HasPeriodEnd("PeriodEnd")
.HasColumnName("PeriodEnd");
}));

Нет PeriodStart или PeriodEnd< /code> и таблица LinesHistory не создана.
Я мог бы вручную выполнить SQL, чтобы изменить таблицу при миграции, но я бы предпочел понять, почему это не так. не работает так, как я думал.
Подробнее здесь: https://stackoverflow.com/questions/788 ... ting-table