Где находится 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
Полное раскрытие информации: я являюсь первоначальным автором и сопровождающим.