升级到EF Core 1.1后,身份值生成只能与带符号整数属性一起使用 [英] Identity value generation can only be used with signed integer properties after upgrade to EF Core 1.1

查看:74
本文介绍了升级到EF Core 1.1后,身份值生成只能与带符号整数属性一起使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

When I updated "Microsoft.EntityFrameworkCore.Tools.DotNet" to version "1.1.0-preview4", entity framework has stopped to generate migrations.

错误:

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.


推荐答案

解决方案摆脱了属性 [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();
}

这篇关于升级到EF Core 1.1后,身份值生成只能与带符号整数属性一起使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆