EF не создает таблицу идентификаторов при попытке создать новую базу данных - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть 2 класса моделей:

  1. Customer.cs с именем и идентификатором
  2. Movies.cs с именем и идентификатором

Я пытался запустить enable-migrations, но я получил эту ошибку:

Не найден тип контекста в сборке WebApplication2 '.

Затем я увидел несколько ответов на веб-сайтах, и люди сказали, чтобы сделать DBContext классУ меня нет класса DBContext, так как я только что создал новый проект MVC.Итак, я попытался создать собственный класс DbContext следующим образом:

{
    public class MyDBContext:DbContext
    { 
        public void MyDbContext()
        {
        }
    }
}

Затем я смог запустить команду enable-migrtaions и папка Migration была создана с configuration.cs какследует:

internal sealed class Configuration : DbMigrationsConfiguration<WebApplication2.Models.MyDBContext>
    {
        public Configuration()
        {
            AutomaticMigrationsEnabled = false;
        }

        protected override void Seed(WebApplication2.Models.MyDBContext context)
        {
            //  This method will be called after migrating to the latest version.

            //  You can use the DbSet<T>.AddOrUpdate() helper extension method 
            //  to avoid creating duplicate seed data.
        }
    }
}

Теперь, когда я запускаю add-миграцию Initialmodel, методы Up () и Down () пусты и таблиц Identity нет.Пожалуйста, помогите!

1 Ответ

0 голосов
/ 16 августа 2019

Прежде всего, я предлагаю вам обратиться к созданию нового проекта MVC с использованием Entity Framework.Существует множество учебных пособий, но вот руководство Microsoft, которое является точным и довольно полным:

Начало работы с кодом Entity Framework 6 Сначала с использованием MVC 5

Оно также включаетраздел о миграциях, однако вам не нужны миграции, пока у вас нет базы данных и изменяющейся модели.

Я бы предложил отменить ваши миграции, пока мы не будем готовы к ним.У Рика Страла есть хорошая статья о том, как их вернуть и вернуться в чистое состояние:

Сброс миграций Entity Framework в чистое состояние

Наконец, ваш DbContextкласс должен иметь DbSet.Класс DbSet - это набор сущностей, который можно использовать для операций создания, чтения, обновления и удаления.С вашим классом DbContext, как он есть, Entity Framework не знает, что делать или отображать.

Измените ваш класс DbContext на что-то вроде этого:

{
public class MyDBContext:DbContext
{ 
    public void MyDbContext()
    {
    }

    public virtual DbSet<Movie> Movies {get; set;}
    public virtual DbSet<Customer> Customers {get; set;}
}

Это позволит вам (скажем, вконтроллер), чтобы сделать что-то вроде этого, чтобы добавить нового клиента в базу данных:

var customer = new Customer { name = "John Smith" };
using(var context = new MyDbContext())
{
   context.Customers.Add(customer); // adds the customer to the DbSet in memory
   context.SaveChanges(); // commits the changes to the database
}

ПРИМЕЧАНИЕ: я не рекомендую создавать DbContext таким образом в контроллере, в первой ссылке на использование EF6 сMVC 5 есть лучшие способы.

Надеюсь, что помогает.

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