【问题标题】:Remove Identity Insert from table Code First Entity Framework 6从表 Code First Entity Framework 6 中删除身份插入
【发布时间】:2015-09-29 21:21:55
【问题描述】:

我想标题说明了一切。我必须更改一个表,以便不再自动生成 ID PK 列,因此我可以实际插入特定值。

现在表实际上是一个复合键。如下;

    [Key,Column("driverId", Order=0)]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public override int ID { get; set; }

    [Key,Column("type", Order=1)]
    [ForeignKey("DriverType")]
    public int DriverTypeId { get; set; }
    public virtual DriverType DriverType { get; set; }

现在我添加了 DatabaseGenerated 属性并运行了迁移,它确实创建了以下内容;

        DropPrimaryKey("dbo.Driver");
        AlterColumn("dbo.Driver", "driverId", c => c.Int(nullable: false));
        AddPrimaryKey("dbo.Driver", new[] { "driverId", "type" });

即AlterColumn 中没有 Identity bool。

但是,当我查看表格的组成时,我有以下内容

CREATE TABLE [dbo].[Driver] (
    [driverId]             INT                IDENTITY (1, 1) NOT NULL,

删除 IDENTITY (1,1) 是否安全?

【问题讨论】:

    标签: c# entity entity-framework-6


    【解决方案1】:

    回答你的问题,不,这样做是不安全的。

    将 [DatabaseGenerated(DatabaseGeneratedOption.None)] 添加到密钥的两个部分。

    【讨论】:

    • 在核心实体框架中,迁移确实建议在这种情况下删除列并重新添加。
    猜你喜欢
    • 2022-01-18
    • 2013-10-28
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    • 2011-04-06
    相关资源
    最近更新 更多