Как предотвратить обновление столбца в EF Core 3.1?

Я обновился с .Net Core 2.2 до 3.1, и эта функция устарела.

modelBuilder
.Entity<Order>()
.Property(e => e.CreationTime)
.ValueGeneratedOnAddOrUpdate()
.Metadata.IsStoreGeneratedAlways = true;

Мне нужно, чтобы EF выполнял вставку, но блокировал обновление.

Спасибо!


person Jhonatan    schedule 30.01.2020    source источник


Ответы (2)



Согласно официальному документации, IsStoreGeneratedAlways устаревает с версии 3.1.

Сборка Microsoft.EntityFrameworkCore.Metadata:

Если Throw, то будет выдано исключение, если этому свойству будет присвоено новое значение после того, как сущность существует в базе данных.

Если выбрано значение «Игнорировать», любое изменение значения свойства сущности, которая уже существует в базе данных, будет проигнорировано.

Вы должны попробовать что-то вроде этого:

modelBuilder
    .Entity<Order>()
    .Property(e =>.CreationTime).Metadata.SetAfterSaveBehavior(PropertySaveBehavior.Ignore);
person Douglas C    schedule 09.02.2020