Добавление темпоральной таблицы к существующей таблицеC#

Место общения программистов C#
Anonymous
Добавление темпоральной таблицы к существующей таблице

Сообщение Anonymous »

У меня уже есть рабочее приложение, в котором я изначально не настроил временные таблицы. Теперь я пытаюсь добавить их в схему, изменив файл IEntityTypeConfiguration для таблиц, но он не работает должным образом.
Например:

Код: Выделить всё

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");
}));
Однако после обновления моей базы данных я не вижу ни одной временной таблицы, созданной в результате этой миграции (ожидается «LinesHistory»):
Изображение

Нет PeriodStart или PeriodEnd< /code> и таблица LinesHistory не создана.
Я мог бы вручную выполнить SQL, чтобы изменить таблицу при миграции, но я бы предпочел понять, почему это не так. не работает так, как я думал.

Подробнее здесь: https://stackoverflow.com/questions/788 ... ting-table

Вернуться в «C#»