Подтвердить что ты не робот

Существует ли первый генератор 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. Есть ли поддержка инструментария там, или мне не повезло? И это даже придет вообще?

4b9b3361

Ответ 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 как зависимость, поскольку она нужна только для оснастки.