Разработка на .NET MAUI | Массовый перенос таблиц из Ms Access
Leadersoft.ru

Разработка на .NET MAUI

С использованием C#, XAML, Ms Access и т.п.

В этом блоге публикуется информация о разработке приложений на .NET MAUI .NET MAUI (Multi-platform App UI) — это бесплатный кроссплатформенный фреймворк от Microsoft для создания нативных приложений с использованием C# и XAML. Простыми словами: вы пишете код один раз, и он работает сразу на Android, iOS, macOS и Windows.

Массовый перенос таблиц из Ms Access

Когда таблиц много в Microsoft Access, ручное описание каждой превращается в рутину. В экосистеме .NET есть два пути автоматизации: один — профессиональный (EF Core), другой — быстрый (генераторы кода). 

Способ 1: Entity Framework Core (Рекомендуемый для сложных баз)

Если в Access много связей (Foreign Keys), лучше использовать EF Core. У него есть функция Scaffold (обратный инжиниринг), которая сама просканирует базу и создаст все классы C#.

  1. Конвертируйте Access в SQLite (используйте утилиту DB Browser for SQLite или расширение для VS — SQLite Toolbox).
  2. В Visual Studio откройте Package Manager Console и выполните команду:
  3. Scaffold-DbContext "Data Source=YourDatabase.db" Microsoft.EntityFrameworkCore.Sqlite -OutputDir Models

Результат: VS автоматически создаст папку Models со всеми классами и связями между ними.

Способ 2: Использование T4-шаблонов или расширений

Если вы используете легкий sqlite-net-pcl, то «скаффолдинг» из коробки не работает. Но можно сделать так:

  • SQLite Toolbox: Это расширение для Visual Studio (от ErikEJ). Оно позволяет правой кнопкой нажать на файл базы данных и выбрать "Generate sqlite-net classes". Оно мгновенно создаст один файл со всеми классами и нужными атрибутами [PrimaryKey], [Indexed] и т.д. [1]

Важные нюансы при большом количестве таблиц:

  1. Связи (Relationships): sqlite-net-pcl — очень простой Он не умеет автоматически подгружать связанные данные (например, Book.Author). Вам придется делать это вручную или использовать расширение SQLite-Net Extensions.
  2. Архитектура: При большом количестве таблиц лучше создать отдельный сервис DatabaseService, где будут инициализироваться все таблицы разом:
// Групповое создание таблиц

await db.CreateTablesAsync(
    CreateFlags.None,
    typeof(User), typeof(Order), typeof(Product), typeof(Category) // и так далее
).ConfigureAwait(false);

Как установить SQLite Toolbox в Visual Studio

Выполните эти шаги, чтобы установить расширение (полное название SQLite & SQL Server Compact Toolbox):
 
1. Установка внутри Visual Studio
  1. Откройте Visual Studio.
  2. В верхнем меню выберите Расширения (Extensions) → Управление расширениями (Manage Extensions).
  3. В строке поиска (справа вверху) введите: SQLite Toolbox.
  4. В списке результатов выберите SQLite & SQL Server Compact Toolbox.
  5. Нажмите кнопку Скачать (Download).
  6. Важно: Закройте Visual Studio. После этого появится окно установщика (VSIX) — нажмите Modify, чтобы завершить процесс.
2. Как его открыть после установки
  1. Снова запустите Visual Studio.
  2. Перейдите в меню Вид (View) → Другие окна (Other Windows).
  3. Выберите SQLite & SQL Server Compact Toolbox.
3. Как им пользоваться для генерации классов
Чтобы не писать код для десятков таблиц вручную:
  1. Подключитесь к вашему файлу базы (нажмите правой кнопкой в окне тулбокса → Add SQLite Connection).
  2. Нажмите правой кнопкой на нужную таблицу или на всю базу целиком.
  3. Выберите в меню: Generate Code → Generate sqlite-net Models... (для sqlite-net-pcl).
  4. Скопируйте полученный код в ваш проект MAUI.

Совет: Перед использованием тулбокса убедитесь, что вы уже сконвертировали ваш файл Access (.accdb) в SQLite (.db или .sqlite), так как расширение работает именно с форматом SQLite.

Бесплатные утилиты для конвертации данных из Access в SQLite?

Самый быстрый и надежный способ перенести данные из Access (.accdb/.mdb) в SQLite — это использовать специализированные конвертеры.
Вот два лучших бесплатных варианта:
 
1. DB Browser for SQLite (Самый простой путь через CSV)
Это «швейцарский нож» для работы с SQLite.
  1. В Access: Откройте таблицу и выберите Внешние данные → Экспорт → Текстовый файл (сохраните как .csv).
  2. В DB Browser:
    • Создайте новую базу данных.
    • Выберите Файл → Импорт → Таблица из CSV-файла.
    • Программа сама создаст структуру таблицы и загрузит данные.
  • Плюс: Полный контроль над типами данных при импорте.
  • Минус: Если таблиц 50+, придется делать это 50 раз.
2. Скрипт "Access to SQLite" (Автоматический)
Существует отличный инструмент с открытым исходным кодом на GitHub — access2sqlite.
  • Это небольшая утилита, которая за один клик переносит все таблицы, индексы и данные из файла Access прямо в файл SQLite.
  • Она корректно сопоставляет типы данных (например, AutoNumber в INTEGER PRIMARY KEY).

 Источник статьи

Добавить комментарий

Loading