我的实体上有一个属性CreatedUtc
,其属性的SQL默认值为SYSUTCDATETIME()
。使用Fluent Api,我将属性标记为ValueGeneratedOnAddOrUpdate()
,以向EF表示已计算出该值。我尝试使用ValueGeneratedOnAdd()
。我也尝试将属性设置为DateTime和DateTime?结合我的流利装饰。在所有情况下,该属性都被EF Core标记为IsTemporary = false
。
我正在尝试将其用于我的审核代码。我需要EF Core将CreatedUtc
设置为IsTemporary = true
,以便当所有临时属性都获得其实际值时,审计将在初始保存之后将其写入。如我所料,由于EF知道它肯定是数据库生成的,所以我的标识属性已正确标记为IsTemporary。
我知道设置ValueGeneratedOnAddOrUpdate()
并不仅仅意味着该值是数据库生成的,因此不一定是合法的临时属性。但是,这似乎是实现将该属性标记为临时属性的最终目标所需要的步骤。
有人知道如何获取EF Core来将非身份计算的属性(例如CreatedUtc
)设置为IsTemporary吗?
注意:我没有尝试过IsTemporary的任何手动设置。如果可以的话,我什么时候可以设置呢?
如果我的CreatedUtc
实例配置流畅:
builder.Property(e => e.CreatedUtc)
.HasDefaultValueSql("(sysutcdatetime())")
.ValueGeneratedOnAddOrUpdate();