こういうクラスを作っていました。
public class User { [Key] public int Id { get; set; } public string Name { get; set; } }マイグレーションを追加すると、このようなコードが出力されます。
identityがtrueなのでデータを追加すると、Idは自動採番されるわけです。
CreateTable( "dbo.User", c => new { Id = c.Int(nullable: false, identity: true), Name = c.String(), }) .PrimaryKey(t => t.Id);
で、わけあって、開発途中でこの主キーを自動採番せず、自分で設定して登録することになりました。
MSDNによると、属性を指定すればOK!ということなので、DatabaseGenerated属性にDatabaseGeneratedOption.Noneを指定しました。
public class User { [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public int Id { get; set; } public string Name { get; set; } }マイグレーションを追加すると、このようにidentityの指定がなくなりました。
DropPrimaryKey("dbo.User"); AlterColumn("dbo.User", "Id", c => c.Int(nullable: false)); AddPrimaryKey("dbo.User", "Id");これでUpdate-Databaseを実行したのですが、どうにもこうにもテーブルに反映されませんね。
仕方がないので、Management Studio上で「IDENTITYの指定」を「False」に変更しました。
またいつか、どこかで。
0 件のコメント:
コメントを投稿