У меня есть локальная база данных, в которой сейчас находится вторая версия, и теперь нужно перейти к третьей версии.
Код предыдущих миграций был сгенерирован другим программистом, поэтому я предполагаю, что я делаю что-то неправильно здесь.
В моей модели есть около 30 классов, а внутри папки модели есть папка сопоставления и содержит сопоставления для этих 30 классов.
Итак, теперь я добавил 1 новый класс таким же образом, как и предыдущие классы, а затем запустил команду add-migration в консоли диспетчера пакетов.
К сожалению, я получаю пустой метод Up() и Down().
Когда я смотрю в базе данных, существует __migrationHistory, доступная с предыдущими 2 переходами. Если я сейчас запустил приложение, добавлена и третья миграция, но, очевидно, новая таблица не создается, потому что она не находится в методе Up().
Что я могу делать неправильно?
Я думаю, что что-то идет не так, когда выкладываете предыдущие миграции... Это похоже на то, что я не могу найти новые классы Code-First, которые я добавил.
Это моя команда:
add-migration "1.2" -verbose -ProjectName "MyEFproject"
Я предполагаю, что строительные леса не знают, где искать новый класс... или это согласуется с тем, что все классы моделей просто ожидаются в проекте?
Результат добавления-миграции:
namespace MyProject.Migrations
{
using System;
using System.Data.Entity.Migrations;
public partial class _1002 : DbMigration
{
public override void Up()
{
}
public override void Down()
{
}
}
}
Пример нового класса модели:
using System;
using System.Collections.Generic;
namespace MyProject.Models
{
public partial class MyTable
{
public string SomeId { get; set; }
public string SomeText { get; set; }
}
}
Пример нового класса сопоставления
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;
namespace MyProject.Models.Mapping
{
public class MyTableMap : EntityTypeConfiguration<MyTable>
{
public MyTableMap()
{
// Primary Key
this.HasKey(t => t.SomeId);
// Properties
this.Property(t => t.SomeText)
.IsRequired()
.HasMaxLength(30);
// Table & Column Mappings
this.ToTable("MyTable", "database");
this.Property(t => t.SomeId).HasColumnName("SomeId");
this.Property(t => t.SomeText).HasColumnName("SomeText");
}
}
}
Спасибо,