我正在使用实体框架 5 和 codefirst 和 sql server express 2012 创建一个 asp.net mvc4 站点。
我已启用迁移,现在在我的 Configuration.Seed 方法中执行此操作:(请注意,我想将主键设置为 8,即使这是数据库中的第一条记录)。
context.ProductCategoryDtoes.AddOrUpdate(x => x.Id,
new ProductCategoryDto() { Id = 8, Name = "category1" }
);
我的模型对象是这样定义的:
[Table("ProductCategory")]
public class ProductCategoryDto {
public long Id { get; set; }
public string Name { get; set; }
}
这会在 (SQL SERVER EXPRESS 2012) 中生成一个表,其中 Id 列的 Identity = true、Identity seed = 1、identity increment = 1。
PM> Update-Database
现在,当我通过在 Id = 1 的行中执行此结果来运行迁移时。
所以我的问题是:
1) 播种数据时如何控制自动递增主键的值。
2)如果解决方案是增加键列种子值,那么当我使用Database.SetInitializer(new DropCreateDatabaseAlways<MyContext>());
. 每次我更新数据库时,这都会核对并重建数据库,那么如何在新数据库中更新种子值?