Где находится EDMX

Знакомство с дотнетом Core. В примере тестового приложения, пытающегося настроить EntityFramework.Core в основном приложении dotnet. Хотя мне удалось добавить пакет EntityFramework.Core NugGet, я не могу найти "Добавить" -> "Новый элемент" -> "Данные" -> "Модель данных объекта ADO.NET".

Это невозможно с EntityFramework.Core?

Чем EntityFramework.Core отличается от EntityFramework 7?

1 ответ

Решение

В Entity Framework Core нет поддержки edmx. Он поддерживает только подход, основанный на коде. Будет добавлена ​​опция для добавления новой модели данных сущностей, но вместо файлов edmx будут созданы файлы классов сущностей. В настоящее время разработка инструментов немного отстает от разработки фреймворка.

По-прежнему нет поддержки EDMX для ядра.Net. Чтобы сгенерировать dbcontext и сущности из базы данных, выполните следующую команду в консоли диспетчера пакетов:

Scaffold-DbContext "Server=yourserver;Database=yourdatabase;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

Подробности см. В https://docs.microsoft.com/en-us/ef/efcore-and-ef6/porting/port-edmx.

Вам понадобятся следующие пакеты:

Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools
Microsoft.EntityFrameworkCore.SqlServer.Design

https://ef.readthedocs.io/en/staging/platforms/aspnetcore/existing-db.html

Вы можете использовать edmx в ядре dot net core, но только в качестве справочника для создания необходимых вам классов.

Для этого вам нужно добавить в свое решение проект, нацеленный на точечную сетевую платформу 3.5 или выше, чтобы edmx работал, добавьте существующий файл edmx из другого, более старого проекта, потому что в Visual Studio 2019 этот шаблон недоступен, теперь вы можно очистить его и добавить объекты с сервера sql.

В других проектах dot net core вам нужно добавить файл шаблонов t4.tt эти файлы будут читать файл edmx через путь файловой системы. Вы должны отредактировать файлы.tt, чтобы работать с ядром dot net.

Еще раз, вам не нужно ссылаться на проект dot net framework, он существует только для того, чтобы edmx мог работать.

В качестве альтернативы EDMX существует расширение с открытым исходным кодом, доступное для визуального моделирования и создания контекстов и классов EF с первым кодом. Он может использовать как скомпилированную сборку, содержащую DbContext, так и существующий код C# класса сущности для облегчения начальной загрузки модели. Доступны на:

https://marketplace.visualstudio.com/items?itemName=michaelsawczyn.EFDesignerhttps://github.com/msawczyn/EFDesigner

Полное раскрытие информации: я являюсь первоначальным автором и сопровождающим.

Другие вопросы по тегам