Генерация контекста для DBFirst приложение на Net Core + EF Core

Чтобы сгенерировать контекст для существующей базы данных на 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

После создания контекста, можно вносить изменения в базу из контекста и классов. Для этого можно добавлять миграции и применять их.

Добавить миграцию из консоли (сначала надо установить поддержку ef CLI командой dotnet tool install --global dotnet-ef )

dotnet ef migrations add the_migration_title

или из PackageManager console

Add-migration the_migration_title

Применить миграцию к базе:

dotnet ef database update

или из PackageManager console

Update-database


Комментариев нет »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment






MarkiMarta.ru. Записки отца-программиста" с 2009 г.
Категория информационной продукции 18+
Яндекс.Метрика