【问题标题】:.Net Core auto-generated string primary key.Net Core 自动生成的字符串主键
【发布时间】:2019-10-04 21:21:00
【问题描述】:

.Net Core 2.2 身份框架具有字符串主键,它是自动生成的 GUID。我的问题是如何使用 Entity Framework 2.2 自动生成 STRING 主键?

【问题讨论】:

  • 喜欢生成一个没有任何约束(任何长度、任何字符等)的随机字符串?
  • GUID 但类型必须是字符串。不是指导。
  • 如果您知道/希望该值是有效的 GUID,为什么还要拥有 string 类型的属性而不是 Guid 类型的属性?
  • 我需要一个通用的自动生成的 VARCHAR 主键。 GUID 很合适,但我不想局限于 GUID 类型。

标签: .net-core entity-framework-core asp.net-identity primary-key autogeneratecolumn


【解决方案1】:

使用 Fluent API 自动生成主键

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Node>().Property(x => x.ID).HasDefaultValueSql("NEWID()");
}

【讨论】:

    【解决方案2】:

    您需要将属性[DatabaseGenerated(DatabaseGeneratedOption.Identity)] 添加到列中。有关详细信息,请参阅official documentation

    【讨论】:

    • 这可以解决问题:[DatabaseGenerated(DatabaseGeneratedOption.Identity)] public string ID { get;放; }
    猜你喜欢
    • 1970-01-01
    • 2019-01-30
    • 2015-10-24
    • 2020-11-30
    • 1970-01-01
    • 2010-12-21
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    相关资源
    最近更新 更多