.net core .Net Core自动生成的字符串主键

.net core .Net Core自动生成的字符串主键,.net-core,entity-framework-core,asp.net-identity,primary-key,autogeneratecolumn,.net Core,Entity Framework Core,Asp.net Identity,Primary Key,Autogeneratecolumn,.Net Core 2.2 Identity framework具有自动生成的GUID字符串主键。我的问题是如何使用EntityFramework2.2自动生成字符串主键 您需要将属性[DatabaseGenerated(DatabaseGeneratedOption.Identity)]添加到列中。有关更多详细信息,请参阅。使用Fluent API自动生成主键 protected override void OnModelCreating(ModelBuilder modelBuilder)

.Net Core 2.2 Identity framework具有自动生成的GUID字符串主键。我的问题是如何使用EntityFramework2.2自动生成字符串主键

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

使用Fluent API自动生成主键

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Node>().Property(x => x.ID).HasDefaultValueSql("NEWID()");
}
模型创建时受保护的覆盖无效(ModelBuilder ModelBuilder)
{
modelBuilder.Entity().Property(x=>x.ID).HasDefaultValueSql(“NEWID()”);
}

like生成没有任何约束(任何长度、任何字符等)的随机字符串?GUID,但类型必须为字符串。不是Guid。如果知道/希望值是有效的Guid,为什么要使用类型为
string
的属性而不是类型为
Guid
?我需要一个通用的自动生成VARCHAR主键。GUID非常适合,但我不想限制为GUID类型。这就做到了:[DatabaseGenerated(DatabaseGenerateOption.Identity)]公共字符串ID{get;set;}