【发布时间】:2023-02-06 20:48:41
【问题描述】:
我希望在使用 ValueGeneratedOnUpdate 时,只有在实体已更新(因此实体已经存在)时才会调用特定值生成器。
相反,该值似乎也是在添加时生成的。
这就是我配置创建和更新道具的方式
builder.Property(self => self.CreatedAt)
.ValueGeneratedOnAdd()
.HasValueGenerator<UtcTimeValueGenerator>();
builder.Property(self => self.UpdatedAt)
.ValueGeneratedOnUpdate()
.HasDefaultValue(null)
.HasValueGenerator<UtcTimeValueGenerator>();
种子数据。
builder.HasData(new List<Device>
{
new Device
{
Id = 1,
ParkingLotId = 1,
Serial = "test",
SigfoxSerial = "test"
}
});
发电机
public class UtcTimeValueGenerator : ValueGenerator<DateTime>
{
public override bool GeneratesTemporaryValues => false;
public override DateTime Next(EntityEntry entry)
=> DateTime.UtcNow;
}
仅使用 IEntityTypeConfiguration,只有当条目已经存在时,才能为特定列设置日期时间属性。
【问题讨论】:
标签: c# entity-framework-core entity-framework-6