Использование EF 6.4 с Core 3.1 (Blazor) - это работает? - PullRequest
1 голос
/ 05 февраля 2020

У меня есть старое решение, использующее EF, и я хотел бы обновить свой презентационный проект до ядра 3.1, чтобы использовать Blazor. Я хотел бы продолжать использовать EF, поэтому я обновился до 6.4.

Я прочитал некоторые новости о поддержке EF 6.4 в. NET Core, но я изо всех сил пытаюсь заставить его работать.

Все мои проекты являются стандартными 2.1, кроме моего. NET Core 3.1 проекта. Я могу создавать проекты, но не могу добавить контекст для запуска.

Я пробовал следующее:

public class MyCustomDbContext : DbContext
{
    public MyCustomDbContext(string connString) : base(connString)
    {
    }

    public DbSet<NewsItem> NewsItems { get; set; }
}

Запуск:

services.AddScoped<MyCustomDbContext>(_ => new MyCustomDbContext(Configuration.GetConnectionString("DefaultConnection")));

Ошибка:

Не найден DbContext в сборке "Core.Entities". Убедитесь, что вы используете правильную сборку и что тип не является ни абстрактным, ни обобщенным c.

1 Ответ

0 голосов
/ 17 февраля 2020

У вас хорошая конфигурация проекта.

Ошибка, которую вы видите, вызвана попыткой (автоматического) запуска миграций для проекта, который не имеет DbContext.

Запускаемый проект выполняет миграции, но DbContext находится в другом проекте.

Чтобы настроить EF для целевого проекта, содержащего DbContext, добавьте миграцию, например, такую:

Add-Migration EmptyMigration -ProjectName "Core.Entities" -StartUpProjectName "Core.Presentation"

Где Core.Entities - проект, содержащий DbContext, а Core.Presentation - ваш запускаемый проект.

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