У поточній завдання знадобилася база регіонів та міст. Оскільки бази у відкритому доступі старі, можуть містити помилки, неточні дані і просто не з першоджерела - вирішено було знайти джерело даних і імпортувати до себе в базу.
Я скачав базу в форматі DBF (не знаю добре це чи погано), вагою 1 ГБ (в форматі XML вона на 500 МБ більше). Далі постало питання чим цю базу відкрити і що з нею робити, адже LINQ і Entity Framework просто так з DBF не працюють. Однак приємно побачимо, коли вдалося відкрити звичайним Excel (НЕ Access)
Відкриваємо SQL Server Management Studio, вибираємо базу куди необхідно імпортувати вибрані таблиці: Tasks> Import Data.
У діалозі в якості Data Source вибираємо .Net Framework Data Provider for Odbc. Далі необхідно вказати рядок підключення до бази. Це окрема історія. Цей рядок підключення я створював раніше в Visual Studio, намагаючись підключитися до файлу безпосередньо.
Створення рядка підключення до DBF в Visual Studio
Натискаємо "Add Connection". Як Data Source вибираємо
В Data Source Specification> Use Connection String> Build. Створюємо (вибираємо) джерело даних. Для початку його необхідно створити.
Після всіх маніпуляцій вийде таке діалогове вікно з готовою рядком підключення. Її потрібно скопіювати, і вставити в MS SQL Server Management.
продовжуємо імпорт
Вставляємо рядок підключення до бази даних в діалогове вікно і тиснемо
На другому кроці вибираємо базу призначення
Я міняю тип 22 на varchar. а 23 на date з довжиною як у вихідній базі. Вийде приблизно наступне:
Після успішної настройки mapping відбудеться процедура імпорту, триває вона кілька хвилин.
Робота з даними
Звичайно імпорт з DBF в MS SQL цікаве заняття але толку він цих даних не дуже багато без попередньої обрабокі.
Для того, щоб отримати список регіонів (суб'єктів РФ) необхідно виконати стандартні процедури по налаштуванню Entity Framework. Далі наступний код повертає список регіонів.
Для в кожному регіоні є REGIONCODE - код регіону. Його слід запам'ятати, за цим кодом можна легко і зручно отримати міста.
Таким чином можна зробити свою базу регіонів і міст у форматі SQL Server