DataDictKit 8.6.0
See the version list below for details.
dotnet add package DataDictKit --version 8.6.0
NuGet\Install-Package DataDictKit -Version 8.6.0
<PackageReference Include="DataDictKit" Version="8.6.0" />
<PackageVersion Include="DataDictKit" Version="8.6.0" />
<PackageReference Include="DataDictKit" />
paket add DataDictKit --version 8.6.0
#r "nuget: DataDictKit, 8.6.0"
#:package DataDictKit@8.6.0
#addin nuget:?package=DataDictKit&version=8.6.0
#tool nuget:?package=DataDictKit&version=8.6.0
DataDictKit
Библиотека для автоматической генерации словаря данных (Data Dictionary) в формате Word (.docx) на основе модели EF Core DbContext (.NET 8).
Сценарий использования
Пункт 2 билета -- модель данных / словарь данных. Генерация профессионального Word-документа с описанием всех сущностей базы данных: поля, типы, ключи, ограничения. Документ оформлен шрифтом Times New Roman 12pt с таблицами для каждой сущности.
Установка
dotnet add package DataDictKit
Быстрый старт
using DataDictKit;
// Сгенерировать Word-документ со словарём данных
DataDictionary.GenerateDocx(dbContext, "словарь.docx");
Возможности
- Генерация Word-документа со словарём данных (Times New Roman 12pt)
- Автоматическое определение типов данных SQL Server (C# → SQL маппинг)
- Распознавание первичных ключей (PK) и внешних ключей (FK)
- Автоматический перевод имён свойств на русский язык
- Поддержка атрибутов
[Display],[Required],[MaxLength],[Key] - Экспорт метаданных в
DataTableдля интеграции с другими библиотеками
Методы
DataDictionary.GenerateDocx
DataDictionary.GenerateDocx(dbContext, "словарь_данных.docx");
Создаёт Word-документ, содержащий таблицу для каждой сущности в DbContext. Документ оформлен шрифтом Times New Roman 12pt. Для каждой сущности создаётся отдельная таблица со столбцами:
| Столбец | Описание |
|---|---|
| Поле | Имя свойства C# |
| Перевод | Русский перевод имени поля |
| Тип данных | Соответствующий тип SQL Server (int, nvarchar, decimal и т.д.) |
| Ограничения | NOT NULL / NULL, MaxLength |
| Ключ | PK (первичный ключ) / FK (внешний ключ) |
| Примечание | Описание ключа, связанная таблица для FK |
DataDictionary.ToDataTables
var tables = DataDictionary.ToDataTables(dbContext);
foreach (var (entityName, dataTable) in tables)
{
Console.WriteLine($"Сущность: {entityName}, полей: {dataTable.Rows.Count}");
}
Возвращает Dictionary<string, DataTable> -- имя сущности и таблица с метаданными. Подходит для отображения в DataGridView или экспорта.
Пример в приложении
public partial class MainForm : Form
{
private AppDbContext db = new AppDbContext();
// Кнопка "Сформировать словарь данных"
private void btnDataDict_Click(object sender, EventArgs e)
{
var saveDialog = new SaveFileDialog
{
Filter = "Word документ|*.docx",
FileName = "словарь_данных.docx"
};
if (saveDialog.ShowDialog() == DialogResult.OK)
{
DataDictionary.GenerateDocx(db, saveDialog.FileName);
MessageBox.Show("Словарь данных сохранён!", "Готово",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
// Просмотр метаданных в DataGridView
private void btnViewMeta_Click(object sender, EventArgs e)
{
var tables = DataDictionary.ToDataTables(db);
// Показать первую сущность
var (name, dt) = tables.First();
dataGridView1.DataSource = dt;
this.Text = $"Словарь данных: {name}";
}
}
Пример сгенерированного документа
Документ содержит заголовок "Словарь данных" и для каждой сущности таблицу вида:
Vacancy (Вакансия)
| Поле | Перевод | Тип данных | Ограничения | Ключ | Примечание |
|---|---|---|---|---|---|
| Id | Идентификатор | int | NOT NULL | PK | Первичный ключ |
| Title | Название | nvarchar(200) | NOT NULL, MaxLength(200) | ||
| Salary | Зарплата | decimal(18,2) | NOT NULL | ||
| CityId | Город (ИД) | int | NOT NULL | FK | Внешний ключ → City |
| IsActive | Активна | bit | NOT NULL |
Лицензия
MIT
| 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
- DocumentFormat.OpenXml (>= 3.5.1)
- Microsoft.EntityFrameworkCore (>= 8.0.25)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on DataDictKit:
| 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.