добавить таблицу codefirst миграции структуры среды - PullRequest
2 голосов
/ 26 апреля 2019

Новая таблица не создается во время миграции.

Кажется, что сама миграция создается

public partial class _222 : Migration
    {
        protected override void Up(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.CreateTable(
                name: "ToDos",
                columns: table => new
                {
                    Id = table.Column<string>(nullable: false),
                    Name = table.Column<string>(nullable: true),
                    Body = table.Column<string>(nullable: true)
                },
                constraints: table =>
                {
                    table.PrimaryKey("PK_ToDos", x => x.Id);
                });
        }

        protected override void Down(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.DropTable(
                name: "ToDos");
        }
    }

Но когда я пишу Update-Database, таблица не создается.

ApplicationDbContext

public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
            : base(options)
        {
            Database.EnsureCreated();
        }

        public DbSet<ToDo> ToDos { get; set; }

ToDos

public class ToDo
    {
        [Key]
        public string Id { get; set; }
        public string Name { get; set; }
        public string Body { get; set; }
    }

Из ошибок в консоли диспетчера пакетов

Failed executing DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE TABLE [AspNetRoles] (
    [Id] nvarchar(450) NOT NULL,
    [Name] nvarchar(256) NULL,
    [NormalizedName] nvarchar(256) NULL,
    [ConcurrencyStamp] nvarchar(max) NULL,
    CONSTRAINT [PK_AspNetRoles] PRIMARY KEY ([Id])
);

There is already an object named 'AspNetRoles' in the database.

1 Ответ

1 голос
/ 26 апреля 2019

Сообщение об ошибке довольно ясно. Он пытается создать таблицу с именем AspNetRoles, которая уже существует в базе данных. Поскольку это не таблица, которую создает ваша миграция, я ожидаю, что это предыдущая миграция, которую необходимо применить в первую очередь. Вероятно, эта таблица была создана вручную, поэтому история миграции показывает, что миграция все еще нуждается в применении. Если это база данных dev, возможно, вы можете удалить эту таблицу и разрешить перенос. Другой обходной путь - найти подходящую миграцию и закомментировать содержимое метода Up. Вам нужно будет проверить правильность схемы существующей таблицы на случай каких-либо изменений.

...