我在OnModelCreating
中使用ef-core 2.1和MSSQL,我使用以下内容正确自动填充已创建的字段:
modelBuilder
.Entity<MyModel>()
.Property(e => e.Created)
.HasDefaultValueSql("GETUTCDATE()")
.ValueGeneratedOnAdd()
.Metadata.AfterSaveBehavior = PropertySaveBehavior.Ignore;
此外,我想填写(并在此后更新)另一个字段,如下所示:
modelBuilder
.Entity<MyModel>()
.Property(e => e.Modified)
.HasDefaultValueSql("GETUTCDATE()")
.ValueGeneratedOnUpdate()
.Metadata.ValueGenerated = ValueGenerated.OnUpdate;
然而,这没有效果。在阅读value-generated-on-add-or-update时,我不清楚是否存在不支持此功能的设施,触发器是唯一的选择,或者我只是配置错误。
流畅的方法调用似乎支持这一点,任何人都知道我做错了什么?
答案 0 :(得分:0)
嗯,我对.Metadata.ValueGenerated
尝试的内容并不熟悉,但是,我在my project中做了非常相似的事情并取得了成功(注意我的数据库是MySQL)。
也许尝试如下。
modelBuilder
.Entity<MyModel>()
.Property(e => e.Modified)
.HasDefaultValueSql("GETUTCDATE()")
.ValueGeneratedOnAddOrUpdate();