Как .NET Core Entity Framework создает таблицы из модели - PullRequest
0 голосов
/ 19 февраля 2019

Я новичок в .NET Core, и я изучаю этот конкретный учебник: https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/adding-model?view=aspnetcore-2.2&tabs=visual-studio

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

Мой вопрос: Мне было интересно, как решение действительно знает, какоемодели должны быть отправлены в базу данных на Update-Database?Я добавил несколько автономных моделей DBSets в DBContext вручную (в учебном пособии MvcMovieContext), но это не помогло.Это папка Migrations?Как это работает?

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

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Entity Framework (Core) работает следующим образом: создавая DbContext или любой класс, производный от него, EF Core проверяет DbSet s и связанные с ними классы в коде.Возьмем, к примеру, это DbContext:

public class StackOverflowDbContext : DbContext {
    public DbSet<MyClass> Test { get; set; }
}

Как только вы начнете с первоначальной миграции (это можно сделать, например, через dotnet ef migrations add Initial), EF проверяет класс DbContext.Если их несколько, вам нужно указать это, в противном случае он берет первое доступное и анализирует его.В этом случае MyClass необходимо добавить в базу данных, и, следовательно, класс и все его свойства начинают появляться в начальной миграции.

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

Я бы подумал, что этот шаг создания лесов не является необходимым

И да, это правда.Вам не нужно использовать строительные леса, они просто служат отправной точкой.

0 голосов
/ 19 февраля 2019

Вы должны создать миграцию и обновить свою базу данных.Команды вы можете найти здесь http://www.entityframeworktutorial.net/efcore/entity-framework-core-migration.aspx

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