Существует ли первый генератор POCO базы данных Entity Framework 7?
Я играю с Entity Framework 7 и ASP.NET 5 для нового проекта, над которым я работаю, но я попал в дорожный блок. Команда, над которой я работаю, использует первый подход DBA к разработке; т.е. база данных спроектирована администратором баз данных, а затем разработчики изменяют код для компенсации изменений модели.
Используя EF6, это работает хорошо, так как мы можем просто обновить код с помощью функциональности EDMX "обновление". Один клик, мы получаем новые классы, и все готово. Однако в EF7 все по-другому. Там больше нет дизайнера, и мы должны использовать Code-First, который, согласно некоторым сообщениям в блоге, которые проводит команда EF, также должен поддерживать генерацию кода "Database-First".
Однако я не могу понять, как это сделать с помощью Visual Studio 2015 CTP6 в приложении ASP.NET 5. Есть ли поддержка инструментария там, или мне не повезло? И это даже придет вообще?
Ответы
Ответ 1
В последних битах для этого можно использовать командную строку dnx и команды powershell, да
Scaffold-DbContext '<connectionString>' EntityFramework.MicrosoftSqlServer
или
dnx ef dbcontext scaffold "<connectionString>" EntityFramework.MicrosoftSqlServer
или (из EF Core RC2)
dotnet ef dbcontext scaffold "<connectionString>" Microsoft.EntityFrameworkCore.SqlServer
Вы должны установить пакеты EntityFramework.Commands и EntityFramework.MicrosoftSqlServer.Design для команды Work
Ответ 2
Это можно сделать с помощью консоли диспетчера пакетов NuGet или командной строки. Я попробовал с командной строкой. После перехода к папке проекта в командной строке я использовал аналогичную команду:
dnx ef dbcontext scaffold "Data Source=myServerName; Initial Catalog=myDatabaseName; Integrated Security=True" EntityFramework.SqlServer
У меня возникли ошибки в отношении отсутствующих пакетов:
EntityFramework.Commands
EntityFramework.SqlServer.Design
а затем выполните следующую команду:
dnu restore
Фактический необходимый пакет может варьироваться в зависимости от указанной структуры (ов) в файле project.json.
Если вы не можете выполнить dnx или другие связанные команды в командной строке, выполните ЭТУ ссылку, которая упоминалась в комментариях другой ответ.
P.S.. Вот текущий список команд [на момент написания, последнее обновление 21 августа]:
ASP.NET - EntityFramework Wiki - Команды NuGet/DNX
Ответ 3
Здесь обновленные параметры для RC2.NET Core (май 2016 г.)
dotnet ef dbcontext scaffold -c RRStoreContext -o Model
"Data Source=(local);Initial Catalog=DBNAME;Integrated Security=True"
Microsoft.EntityFrameworkCore.SqlServer --force
Обратите внимание, что Microsoft.EntityFrameworkCore.SqlServer
- это новое имя пакета, который должен использоваться в команде. Я добавил параметр force
, чтобы перезаписать существующие файлы. Параметр "o" выводит имя каталога. И теперь dotnet
вместо dnx
.
В текущем выпуске зависимостей, которые вам нужны в project.json
, являются
"dependencies": {
"Microsoft.EntityFrameworkCore": "1.0.0-rc2-final",
"Microsoft.EntityFrameworkCore.SqlServer.Design": "1.0.0-rc2-final",
"Microsoft.EntityFrameworkCore.Tools": {
"type": "build",
"version": "1.0.0-preview1-final"
}
},
Примечание. Тип 'build' означает, что все, что ссылается на вашу сборку, не будет воспринимать эту DLL как зависимость, поскольку она нужна только для оснастки.