Чтобы сгенерировать контекст для существующей базы данных на SQL сервере, нужно добавить в решение несколько пакетов и выполнить команду для скаффолдинга:
NuGet\Install-Package Microsoft.EntityFrameworkCore
NuGet\Install-Package Microsoft.EntityFrameworkCore.SqlServer
NuGet\Install-Package Microsoft.EntityFrameworkCore.Tools
NuGet\Install-Package Microsoft.Extensions.Configuration
Собственно, сам скаффолдинг:
Scaffold-DbContext "Data Source=SQLSrverInstance;Initial Catalog=dbname;User ID=login;Password=****;MultiSubnetFailover=True" Microsoft.EntityFrameworkCore.SqlServer -Tables MyTable
Но бывает, что дальше идет сообщение об ошибке: A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - Цепочка сертификатов выпущена центром сертификации, не имеющим доверия.) Голову сломал, прежде чем сообразил.
Проблема была связана с устаревшим протоколом шифрования на SQL сервере TLS 1.1 или еще хуже. По-хорошему, надо обновить протокол шифрования, но как временное решение подойдет такое решение - в строку подключения надо добавить TrustServerCertificate=true.
Scaffold-DbContext "Data Source=SQLSrverInstance;Initial Catalog=dbname;User ID=login;Password=****;TrustServerCertificate=true" Microsoft.EntityFrameworkCore.SqlServer -Tables MyTable