如何获取EF Core以将ValueGeneratedOnAddOrUpdate属性标记为IsTemporary

时间:2019-07-30 05:07:30

标签: ef-core-2.2

我的实体上有一个属性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();

0 个答案:

没有答案