EF代码优先-自动生成的ID

鲁宾·赫尔曼

===============问题================

首先,我正在使用实体框架(代码优先)。我有以下课程:

 public class RandomObject
 {
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity), Column(Order = 1)]
    public int Id { get; protected set; }

    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity), Column(Order = 2)]
    public Guid UniqueId { get; protected set; }

    public string Other { get; set; }
 }

我也有一个迁移文件夹(程序包),在其中为一些对象播种数据库。

    private void AddDefaultObjects(Context context)
    {
        var object1 = new RandomObject{ Other = "qsdf1" };
        var object2 = new RandomObject{ Other = "qsdf2" };
        var object3 = new RandomObject{ Other = "qsdf3" };

        var objects = new RandomObject[3]{object1 , object2 , object3 };

        context.RandomObjects.AddOrUpdate(object => object.Id, objects);
        context.SaveChanges();
    }

但是,当我添加对象时,它们都获得相同的UniqueId => NOK(但具有不同的Id => OK)

===============尝试================

我尝试添加属性

    [Index(IsUnique = true)]

或设置(在我的迁移配置文件中)

    column.DefaultValueSql = "newid()";

===============结果================

Id   |   UniqueId
--------------------------------------------
19   |   db1e353e-7dd7-e311-8250-8c89a5c20da1
20   |   dc1e353e-7dd7-e311-8250-8c89a5c20da1
21   |   dd1e353e-7dd7-e311-8250-8c89a5c20da1
特洛伊·卡尔森(Troy Carlson)

尝试一下...。我认为您AddOrUpdate需要在第一个参数中同时使用复合主键的两个部分:

context.RandomObjects.AddOrUpdate(object => 
                                  new { object.Id, object.UniqueId }, 
                                  objects);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

EF代码优先,将记录插入自动生成的表

来自分类Dev

从EF自动迁移切换到代码优先迁移

来自分类Dev

为EF代码优先程序生成连接字符串

来自分类Dev

代码优先EF数据库在启动时不会自动生成

来自分类Dev

在代码优先迁移中自动生成的代码

来自分类Dev

代码优先EF:在数据库生成期间未将枚举ID添加到数据库

来自分类Dev

在代码优先EF6中使用SqlGeography不生成列

来自分类Dev

EF6:访问通过代码优先fluent API生成的映射表

来自分类Dev

无法在 ASP.NET Core 代码优先 EF 模型中将 Id 设置为主键

来自分类Dev

EF CascadeOnDelete代码优先

来自分类Dev

在代码优先方法中自动生成复杂类型

来自分类Dev

EF反向POCO代码优先生成器多对多关系是指不存在的模型属性

来自分类Dev

EF代码优先,数据库优先

来自分类Dev

EF多模式代码优先

来自分类Dev

EF代码优先与关系的错误

来自分类Dev

EF代码优先映射的困惑

来自分类Dev

EF生成的代码继承

来自分类Dev

实体框架代码优先自动创建表

来自分类Dev

自动生成HTML代码

来自分类Dev

Swift 自动代码生成

来自分类Dev

自动生成代码/文本

来自分类Dev

代码优先生成额外的列

来自分类Dev

代码优先数据库生成查询

来自分类Dev

EF6 +代码优先+流利:错误无法将值NULL插入列“ ID”,表“ X”列不允许为空

来自分类Dev

实体框架代码优先-无效的列ID

来自分类Dev

多对多关系EF代码优先

来自分类Dev

DDD和EF代码优先迁移

来自分类Dev

EF代码优先通用实体和EntityTypeConfiguration

来自分类Dev

禁用外键约束代码优先EF