【问题标题】:How to Update Identity Column on .Net Core 3.0如何在 .Net Core 3.0 上更新身份列
【发布时间】:2020-03-27 17:24:06
【问题描述】:

我有一个问题, 如何在 net core 3.0 中使用 EF 更新 sql server db 上的标识列。 在 net core 2.0 上我可以使用

.UseSqlServerIdentityColumn()
.Metadata.AfterSaveBehavior

但是在 net core 3.0 中我不能再使用那个方法了, 你能告诉我在 net core 3.0 中我可以使用什么方法来更新数据库上的标识列

【问题讨论】:

  • 试试var prop = modelBuilder.Entity<YourModel>().Property(p => p.Id); prop.UseIdentityColumn(); prop.Metadata.SetAfterSaveBehavior(PropertySaveBehavior.Ignore); ?

标签: asp.net-core asp.net-core-3.0 identity-column


【解决方案1】:

对于保存新记录的每个实体,您可以使用

modelBuilder.Entity<EntityName>().Property(p => p.Id).ValueGeneratedOnAdd();

或者为每次保存更改获取新 ID

modelBuilder.Entity<EntityName>().Property(p => p.Id).ValueGeneratedOnAddOrUpdate()

由 sql server 生成并在 EF Core 2+ 上运行的值

默认情况下,Id 列是标识,但您可以在其他属性上使用元数据

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int IdSecondary { get; set; }

【讨论】:

    猜你喜欢
    • 2020-01-24
    • 2020-05-30
    • 1970-01-01
    • 2020-02-19
    • 2020-03-09
    • 1970-01-01
    • 2018-04-01
    • 2020-01-30
    • 1970-01-01
    相关资源
    最近更新 更多