プライマリキーを自動インクリメントに設定して、エンティティフレームワークでコードファーストを使用してテーブルを作成しましたが、その列から自動インクリメントを削除したいと考えています。とき、しかし、Entity Framework 6で主キーからIDを削除できますか?
public partial class removeproducttypeidentity : DbMigration
{
public override void Up()
{
DropPrimaryKey("dbo.ProductTypes");
AlterColumn("dbo.ProductTypes", "ProductTypeId", c => c.Int(nullable: false));
AddPrimaryKey("dbo.ProductTypes", "ProductTypeId");
}
public override void Down()
{
DropPrimaryKey("dbo.ProductTypes");
AlterColumn("dbo.ProductTypes", "ProductTypeId", c => c.Int(nullable: false, identity: true));
AddPrimaryKey("dbo.ProductTypes", "ProductTypeId");
}
}
:
public class ProductTypeMap: EntityTypeConfiguration<ProductType>
{
public ProductTypeMap()
{
// This is an enum effectively, so we need fixed IDs
Property(x => x.ProductTypeId)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
}
}
および注釈:
public class ProductType
{
[Required, Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public int ProductTypeId { get; set; }
public string ProductTypeName { get; set; }
}
そして、どちらの場合も、それらが同じ移行コードを生成し、私は流暢なAPIの両方であることをやってみました私はデータベース上でそのマイグレーションを実行しますが、アイデンティティ仕様はSQL Server 2008データベーステーブルから削除されません。次のように
は、私はまた、明示的に移行してアイデンティティをオフにしてみましたが、それはそれをしなかったのいずれか:
AlterColumn("dbo.ProductTypes", "ProductTypeId", c => c.Int(nullable: false, identity: false));
アイデンティティを削除するSQLを指示する別の方法はありますか?