从表Code First Entity Framework中删除标识插入

本文关键字:删除 标识 插入 Framework Code First Entity 从表 | 更新日期: 2023-09-27 18:14:57

我想标题已经说明了一切。我必须更改一个表,使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中没有标识bool。

然而,当我看表的组成时,我有以下

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

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

从表Code First Entity Framework中删除标识插入

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

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