#c# #asp.net-mvc #entity-framework
#c# #asp.net-mvc #entity-framework
Вопрос:
Официальный ASP.Net Core говорит, что следующую ошибку можно исправить, перезапустив Visual Studio:
Scaffold-DbContext : The term 'Scaffold-DbContext' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
Однако команда продолжает завершаться сбоем.
Я запускаю его в консоли диспетчера пакетов, следуя примеру, приведенному в ASP.Net основная онлайновая документация.
Scaffold-DbContext "Server=(localdb)mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
Комментарии:
1. Пожалуйста, попробуйте выполнить команду в окне PowerShell (сначала перейдите в папку проекта)
Ответ №1:
Я столкнулся с той же проблемой. Для меня это был EntityFrameworkCore.Инструменты, которые отсутствовали и неправильно устанавливались через NuGet.
Запустите эти команды в консоли диспетчера пакетов ( Tools > NuGet Package Manager > Package Manager Console
):
Install-Package Microsoft.EntityFrameworkCore.SqlServer –Pre
Install-Package Microsoft.EntityFrameworkCore.Tools –Pre
Install-Package Microsoft.EntityFrameworkCore.SqlServer.Design –Pre
А затем в project.json я добавил это:
"tools": {
"Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final",
}
Важно!Убедитесь, что эта версия соответствует пакету «dependencies» (также в project.json). В этом примере «1.1.0-preview4-final» также следует использовать в зависимостях.
Если проблема все еще сохраняется, попробуйте восстановить время выполнения ef, руководство найдено здесь: https://github.com/aspnet/EntityFramework/issues/5549
Ответ №2:
Это то, с чего я начинаю при создании нового ASP.NET Проект Core 1.1, который экономит мне много времени. Если вы выполнили шаг 1, а шаг 2 не сработал сразу, попробуйте перезапустить Visual Studio и перейти к шагу 2.
Шаг 1
Используйте следующее в качестве project.json. Восстановление пакетов.
{
"version": "1.0.0-*",
"dependencies": {
"Microsoft.EntityFrameworkCore.SqlServer": "1.1.0",
"Microsoft.EntityFrameworkCore.SqlServer.Design": "1.1.0",
"Microsoft.EntityFrameworkCore": "1.1.0",
"Microsoft.EntityFrameworkCore.Design": "1.1.0",
"Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final",
"NETStandard.Library": "1.6.1",
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.1.0"
}
},
"frameworks": {
"netcoreapp1.1": {
"imports": "dnxcore50"
}
},
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-preview4-final",
"Microsoft.EntityFrameworkCore.Tools.DotNet": "1.1.0-preview4-final"
}
}
Шаг 2
Запустите запрос в консоли диспетчера пакетов. Приведенный ниже запрос подключается к базе данных TestDb на сервере тестирования
Scaffold-DbContext "Data Source=TestServer;Initial Catalog=TestDb;Persist Security Info=True;User ID={Username};Password={Password}" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -force -v -t dbo.Table1, dbo.Table2, dbo.Table3