codefirstとsqlserverexpress2012でエンティティフレームワーク5を使用してasp.netmvc4サイトを作成しています。
移行を有効にし、Configuration.Seedメソッドでこれを実行します(これはデータベースの最初のレコードですが、主キーを8に設定することに注意してください)。
context.ProductCategoryDtoes.AddOrUpdate(x => x.Id,
new ProductCategoryDto() { Id = 8, Name = "category1" }
);
私のModelオブジェクトは次のように定義されています。
[Table("ProductCategory")]
public class ProductCategoryDto {
public long Id { get; set; }
public string Name { get; set; }
}
これにより、(SQL SERVER EXPRESS 2012)のテーブルが作成され、Id列のID = true、IDシード= 1、ID増分=1になります。
これを実行して移行を実行するPM> Update-Database
と、Id=1の行になります。
だから私の質問は:
1)データをシードするときに、自動インクリメントされた主キーの値を制御するにはどうすればよいですか。
2)解決策がキー列のシード値をインクリメントすることである場合、を使用しているときにこれをどのように行うかDatabase.SetInitializer(new DropCreateDatabaseAlways<MyContext>());
。これにより、データベースを更新するたびにデータベースが削除されて再構築されます。新しいデータベースでシード値はどのように更新されますか?