MigrationKit 8.6.4
dotnet add package MigrationKit --version 8.6.4
NuGet\Install-Package MigrationKit -Version 8.6.4
<PackageReference Include="MigrationKit" Version="8.6.4" />
<PackageVersion Include="MigrationKit" Version="8.6.4" />
<PackageReference Include="MigrationKit" />
paket add MigrationKit --version 8.6.4
#r "nuget: MigrationKit, 8.6.4"
#:package MigrationKit@8.6.4
#addin nuget:?package=MigrationKit&version=8.6.4
#tool nuget:?package=MigrationKit&version=8.6.4
MigrationKit
Библиотека для управления базой данных через EF Core: создание, сброс, резервное копирование, восстановление и версионированный seed данных.
Установка
dotnet add package MigrationKit
Класс DbInfo
Класс, содержащий информацию о базе данных.
| Свойство | Тип | Описание |
|---|---|---|
ServerName |
string |
Имя сервера базы данных |
DatabaseName |
string |
Имя базы данных |
TableCount |
int |
Количество таблиц в базе данных |
ConnectionString |
string |
Строка подключения |
Provider |
string |
Провайдер базы данных |
API-справочник (класс DbHelper)
EnsureCreatedAsync(DbContext context)
Создает базу данных, если она не существует.
await DbHelper.EnsureCreatedAsync(context);
SeedIfEmpty<T>(DbSet<T> dbSet, IEnumerable<T> seedData)
Заполняет таблицу начальными данными, только если она пуста.
DbHelper.SeedIfEmpty(context.Employees, new List<Employee>
{
new Employee { Name = "Иванов", Salary = 50000 },
new Employee { Name = "Петров", Salary = 60000 }
});
ResetAsync(DbContext context)
Сбрасывает базу данных (удаление и повторное создание).
await DbHelper.ResetAsync(context);
GetInfo(DbContext context)
Возвращает объект DbInfo с информацией о базе данных: имя сервера, имя БД, количество таблиц, строка подключения и провайдер.
DbInfo info = DbHelper.GetInfo(context);
Console.WriteLine($"Сервер: {info.ServerName}, БД: {info.DatabaseName}, Таблиц: {info.TableCount}");
SeedVersion(DbContext context, string version, Action seedAction)
Выполняет seed-действие один раз для указанной версии. Повторный вызов с тем же version ничего не сделает. Использует служебную таблицу __SeedHistory в базе данных.
DbHelper.SeedVersion(context, "1.0", () =>
{
context.Departments.Add(new Department { Name = "IT" });
context.SaveChanges();
});
DbHelper.SeedVersion(context, "1.1", () =>
{
context.Departments.Add(new Department { Name = "HR" });
context.SaveChanges();
});
GetRecordCount<T>(DbContext context)
Возвращает количество записей в указанной таблице.
int count = DbHelper.GetRecordCount<Employee>(context);
Console.WriteLine($"Сотрудников: {count}");
Backup(DbContext context, string path)
Создает резервную копию базы данных (только SQL Server).
DbHelper.Backup(context, @"C:\Backups\mydb.bak");
Restore(DbContext context, string path)
Восстанавливает базу данных из резервной копии (только SQL Server).
DbHelper.Restore(context, @"C:\Backups\mydb.bak");
Примеры использования
Инициализация базы данных с версионированным seed
using MigrationKit;
await DbHelper.EnsureCreatedAsync(context);
DbHelper.SeedVersion(context, "1.0", () =>
{
context.Roles.AddRange(
new Role { Name = "Admin" },
new Role { Name = "User" }
);
context.SaveChanges();
});
DbHelper.SeedVersion(context, "1.1", () =>
{
context.Settings.Add(new Setting { Key = "Theme", Value = "Dark" });
context.SaveChanges();
});
var info = DbHelper.GetInfo(context);
int users = DbHelper.GetRecordCount<User>(context);
Console.WriteLine($"БД {info.DatabaseName}: {info.TableCount} таблиц, {users} пользователей");
Резервное копирование и восстановление
string backupPath = @"C:\Backups\mydb_" + DateTime.Now.ToString("yyyyMMdd") + ".bak";
DbHelper.Backup(context, backupPath);
// Восстановление при необходимости
DbHelper.Restore(context, backupPath);
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Microsoft.EntityFrameworkCore (>= 8.0.25)
- Microsoft.EntityFrameworkCore.Relational (>= 8.0.25)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on MigrationKit:
| Package | Downloads |
|---|---|
|
ISBuilder
Information System Builder — full toolkit for building .NET 8 WinForms applications with EF Core, SQL Server. Export, CRUD, forms, charts, auth, reports, validation, themes. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 8.6.4 | 135 | 4/12/2026 |