Entity Framework создает пустой файл миграции - PullRequest
0 голосов
/ 15 мая 2019

Я создал свой первоначальный проект в Visual Studio и обнаружил, что использовал SQL Server после создания первоначальной миграции. Затем я изменил всю информацию о подключении, чтобы использовать MYSQL, и успешно подключился Я снова создал начальную миграцию, и она создала все таблицы безопасности ASP. Я добавил новую модель и обновил базу данных, но она создала пустую миграцию (только методы UP / DOWN)

Я пробовал несколько исправлений, которые я нашел здесь и на других сайтах. Я отказался от второй миграции и повторил попытку. Я снова попытался форсировать миграцию (-f). Я удалил новую базу данных MYSQL и удалил миграции, затем начал заново, все с тем же результатом.

Вот мой код модели:

using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace congresssucks_conversion.Models
{
    public class BlogPost : DBContext
    {
        public int Id { get; set; }
        public string Title { get; set; }
        public string ShortPost { get; set; }
        public string Post { get; set; }
        public string Tags { get; set; }
        public DateTime Updated { get; set; }
    }
}

А вот и файл миграции:

namespace congresssucks_conversion.Migrations
{
    using System;
    using System.Data.Entity.Migrations;

    public partial class blogpost : DbMigration
    {
        public override void Up()
        {
        }

        public override void Down()
        {
        }
    }
}

Успешно завершается и в окне терминала нет ошибок.

Ответы [ 2 ]

0 голосов
/ 15 мая 2019

Попробуйте удалить запись последней миграции из таблицы _MigrationHistory. Возможно, эта запись была неправильно создана до добавления DbSet для нового объекта модели в класс DbContext. После этого удаления была создана новая миграция с правильными методами Up () и Down ().

0 голосов
/ 15 мая 2019

Вы объединяете две разные вещи: класс модели и контекст базы данных.

Ваш класс BlogPostm не должен наследовать DbContext, он должен быть просто классом C #.

Затем вы создаете новый класс, который выглядит примерно так:

public class BlogDbContext : DbContext
{
    public DbSet<BlogPostm> Posts { get; set; }
}

Теперь у вас есть класс, который может представлять одну запись, и другой класс, который может представлять базу данных с таблицей из нескольких сообщений в блоге. Генератор миграции ищет эти DbSet<whatever> свойства, поэтому вы должны увидеть реальные миграции после этого изменения.

Существует гораздо больше способов описать то, что вы хотите, чтобы Entity Framework делал с вашей базой данных, поэтому стоит рассмотреть учебник по Entity Framework.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...