Проблема с "dotnet ef dbcontext scaffold" в Linux Bash - PullRequest
0 голосов
/ 21 ноября 2018

при выполнении следующей команды в linux bash,

dotnet ef dbcontext scaffold "Server=192.168.1.5\MSSQLSERVER2017;Database=TestDb;User Id=test;Password=test@987" Microsoft.EntityFrameworkCore.SqlServer -o Models --context AppDbContext -t solid

Я получаю это сообщение об ошибке:

Unrecognized command or argument 'Microsoft.EntityFrameworkCore.SqlServer'

Я выяснил проблему, вызванную пробелом в "User"Id "в команде, потому что, когда я удаляю пробел, я получаю это сообщение.

Keyword not supported: 'userid'

Я перепробовал множество комбинаций, таких как ввод User \ Id," User Id "," User Id ", User" "Id игораздо больше я нашел в интернете, но я все еще застрял на этом.Как я могу решить эту проблему?

Моя версия EF:

Entity Framework Core .NET Command-line Tools
2.1.4-rtm-31024

Моя версия dotnet:

.NET Core SDK (reflecting any global.json):
 Version:   2.1.500
 Commit:    b68b931422

Runtime Environment:
OS Name:     arch
OS Version:  
OS Platform: Linux
RID:         arch-x64
Base Path:   /opt/dotnet/sdk/2.1.500/

Host (useful for support):
Version: 2.1.6
Commit:  3f4f8eebd8

.NET Core SDKs installed:
 2.1.500 [/opt/dotnet/sdk]

.NET Core runtimes installed:
Microsoft.NETCore.App 2.1.6 [/opt/dotnet/shared/Microsoft.NETCore.App]

PS Я уже добавил "Microsoft.EntityFrameworkCore.DesignПакет в проекте тоже.

Ответы [ 2 ]

0 голосов
/ 29 марта 2019

У меня тоже была такая же проблема на Windows.dotnet ef scaffold error

но я исправил это с помощью приведенной ниже команды.

> dotnet ef dbcontext scaffold "Server=.\;Database=YourDatabase;Trusted_Connection=False; User ID=sa; Password=YourPassword;" Microsoft.EntityFrameworkCore.SqlServer -o Model -c "YourDBContext"

В моем собственном случае я попытался выяснить, что не так с моим предыдущими я получил несколько ответов, хотя они могут быть неприменимы ко всем.

  1. До ключа "Сервер" я использовал одинарную кавычку, поэтому я изменил ее на двойную кавычку.
  2. По моему "."для имени сервера я включил обратную косую черту "\"
  3. Я заключил свой контекст БД в двойные кавычки.

Хотя я предпринял все эти шаги, но правда в том, что я неЯ не знаю, какой из них действительно работал, но я могу заверить вас, что приведенный выше код работает довольно хорошо.Однако вы можете проверить статью, которую я нашел ниже.https://www.learnentityframeworkcore.com/walkthroughs/existing-database

0 голосов
/ 21 ноября 2018

Я не знаком с платформой .NET, но могу сказать, что bash здесь не ваша проблема.Я полагаю, что ошибка, которую вы получаете при удалении пробела из «Идентификатора пользователя», не связана, и пробел работает как положено.Вместо этого вы получаете сообщение об ошибке, что команда SqlServer не распознана.Вероятно, это связано с тем, что он либо не установлен, либо неправильно заданы путь / разрешения.

https://www.nuget.org/packages/Microsoft.EntityFrameworkCore.SqlServer/

...