我认为标题说明了一切。我必须更改一个表,以便不再自动生成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)吗?
答案 0 :(得分:0)
回答你的问题,不这样做是不安全的。
将[DatabaseGenerated(DatabaseGeneratedOption.None)]添加到密钥的两个部分。