【发布时间】:2012-10-03 08:22:17
【问题描述】:
我正在使用实体框架 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>()); 时如何做到这一点。这将在我每次更新数据库时核对并重建数据库,那么如何在新数据库中更新种子值?
【问题讨论】:
标签: sql-server entity-framework ef-code-first entity-framework-migrations