从表Code First Entity Framework 6中删除Identity Insert

时间:2015-09-29 12:14:40

标签: c# entity entity-framework-6

我认为标题说明了一切。我必须更改一个表,以便不再自动生成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)吗?

1 个答案:

答案 0 :(得分:0)

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

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