Попытка настроить ядро Entity Framework in.Net стандартный проект


Мне было интересно, если я могу настроить мой EntityFrameworkCore в .Чистый стандарт легко проект 2.0. Я следовал этому учебнику, но он требует либо .NET Core, либо Framework.

Когда я добрался до этого шага:

Scaffold-DbContext "Server=(localdb)mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

Я получил эту ошибку:

Имя_проекта стартап-проект '' база задач '.Нетстандарт". С этой платформой не связана среда выполнения, и проекты, нацеленные на нее, не могут выполняться напрямую. Использование базового пакета Entity Framework Инструменты консоли диспетчера с этого проекта, добавить исполняемый проект для .Net или .Чистое ядро, которое ссылается на этот проект, и установить его в качестве запускаемого проекта; или, обновлять проект на крест-мишень .Net или .Чистые ядра.

Мне интересно, могу ли я настроить свою сущность в стандарте .NET или есть ли лучшая практика, которую я должен делать вместо этого?

2 11

2 ответа:

Имя_проекта стартап-проект '' база задач '.Нетстандарт". С этой платформой не связана среда выполнения, и проекты, нацеленные на нее, не могут выполняться напрямую. Чтобы использовать объект базы ключевых консоль диспетчера пакетов средства с данного проекта, добавить исполняемый проект для .Net или .Чистое ядро, которое ссылается на этот проект, и установить его в качестве запускаемого проекта; или, обновлять проект на крест-мишень .Net или .Чистые ядра.

Ошибка сообщение означает следующее: Не существует такой вещи, как исполняемый стандартный проект .NET. Для него не существует среды выполнения, поскольку это просто механизм пересылки типов для нескольких различных сред выполнения.

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

Решение состоит в том, чтобы выбратьисполняемую платформу для запуска вашего приложения. Вы можете ссылаться на столько .NET Standard библиотеки, как вам нравится из вашего exectuable (до тех пор, пока они совместимы с вашей средой выполнения), но сам исполняемый файл не может быть запущен на .NET Standard. Для выполнения он должен быть нацелен на платформу, такую как .NET Framework или .NET Core.

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

Первый ответ здесь. Вообще-то я тоже пытаюсь это сделать. Я получил леса, но Net Standard, кажется, не загружает расширения для свойств таблицы.

Убедитесь, что вы установили EntityFrameworkCore.Пакет инструментов для EF. Вам нужна только поддержка 4.6.1, которая используется по умолчанию. Если я выясню, как исправить проблему с расширениями, я опубликую здесь.

Эти два обязательны. Установка Пакета Microsoft.EntityFrameworkCore.От SQLServer установленный пакет Microsoft.EntityFrameworkCore.Инструменты