升级到EF Core 1.1后,标识值生成只能与带符号的整数属性一起使用

时间:2016-11-29 15:49:44

标签: asp.net-core entity-framework-core asp.net-core-1.0

当我将" Microsoft.EntityFrameworkCore.Tools.DotNet" 更新为版本" 1.1.0-preview4" 时,实体框架已停止生成迁移。

错误:

dotnet : System.ArgumentException: Identity value generation cannot be used      
for the property 'UID' on entity type 'SomeEntity' because the property type is   
'Guid'. Identity value generation can only be used with signed integer properties.

1 个答案:

答案 0 :(得分:3)

解决方案是摆脱属性 [DatabaseGenerated(DatabaseGeneratedOption.Identity)]

[Key]
// [DatabaseGenerated(DatabaseGeneratedOption.Identity)] <-- remove this
public Guid UID { get; set; }

并更新模型构建器

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);

    // add this:
    modelBuilder.Entity<SomeEntity>().Property(p => p.UID).ValueGeneratedOnAdd();
}