Я использую первый подход сущностного кода в моем проекте. Я создал модель и включил миграции, используя оператор enable-migrations в консоли диспетчера пакетов. Мой контекст класс содержит конфигурации отображения и отношения, какМожно ли добавлять индексы, изменяющие начальную миграцию?
modelBuilder.Configurations.Add(new PostMap());
modelBuilder.Configurations.Add(new UserMap());
Up методу в моем миграции файлы 201302261054023_InitialCreate.cs содержит все определения таблицы, как указано мой контекст через DbSet < Типа > недвижимости.
Я изменил метод InitializeDatabase в своей пользовательской базе данных Initializer, потому что я хочу перейти к определенной миграции во время инициализации базы данных.
public void InitializeDatabase(T context)
{
bool databaseExists = context.Database.Exists();
if (!databaseExists)
context.Database.CreateIfNotExists();
var configuration = new Configuration();
var migrator = new DbMigrator(configuration);
migrator.Update("InitialCreate");
}
можно модифицировать Up метод в классе 201302261054023_InitialCreate, чтобы добавить еще один индекс из
CreateTable(
"dbo.City",
c => new
{
Id = c.Int(nullable: false, identity: true),
Name = c.String(maxLength: 450),
})
.PrimaryKey(t => t.Id);
в
CreateTable(
"dbo.City",
c => new
{
Id = c.Int(nullable: false, identity: true),
Name = c.String(maxLength: 450),
})
.PrimaryKey(t => t.Id)
.Index(t=>t.Name,true);
без добавления другой миграции?
Gouber, благодарю вас за ответ. Мой вопрос не был описан надлежащим образом. Я хочу управлять индексами, используя миграции. Ваш подход должен быть функциональным, но только в ситуациях, когда база данных переносится в последнюю версию. Мне нужны индексы, которые должны быть созданы с базой данных, перенесенной в более раннюю, чем последняя версия. –