Я создаю сайт asp.net mvc4 с использованием entity framework 5 с codefirst и sql server express 2012.
Я включил миграции и теперь делаю это в моем методе 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, приращение идентификатора = 1.
Теперь, когда я запускаю миграции, выполнив PM> Update-Database
этот результат в строке с Id = 1.
Итак, мой вопрос:
1) Как я могу контролировать значения автоматически увеличиваемых первичных ключей при заполнении данных.
2) Если решение состоит в том, чтобы увеличить начальное значение ключевых столбцов, то как это сделать, когда я использую Database.SetInitializer(new DropCreateDatabaseAlways<MyContext>());
. Это приведет к сбою и восстановлению базы данных каждый раз, когда я обновляю базу данных, поэтому как будет обновляться начальное значение в новой базе данных?