Перенос данных для разных СУБД в EntityFramework Migrations

214
31 января 2018, 11:27

Есть приложение, использующее в качестве ORM EntityFramework. Нужно к этому приложению прикрутить миграцию БД. На данный момент рассматриваются EF Code First Migrations.

Для миграции структуры данных класс DbMigration предоставляет специальные методы (AddTable, AddColumn и т.д.). Для миграции самих данных, согласно информации отсюда:

There is no native support for data motion yet, but we can run some arbitrary SQL commands at any point in our script.

предлагается выполнять SQL-скрипты посредством вызова методов Sql, SqlFile и SqlResource.

Предполагается, что приложение может поддерживать работу с разными СУБД (SqlServer, Oracle, Postgre). Поскольку Sql-скрипты миграций могут (и скорее всего будут) отличаться друг от друга для разных СУБД, то возникает вопрос, как выбирать нужный скрипт в зависимости от СУБД?

Я предполагаю, что нужно написать код вида:

if (IsSqlServer) {
    SqlFile("Script1_SqlServer.sql");
}
else if (IsOracle) {
    SqlFile("Script1_Oracle.sql");
}

Если я прав, то как правильнее организовать проверку СУБД (получить значения IsSqlServer, IsOracle)? Если нет, то что нужно сделать для миграции данных?

READ ALSO
Экспорт данных из файла Excel в DataGridView

Экспорт данных из файла Excel в DataGridView

Нашел код для загрузки данных Excel в таблицу DataGridView:

251
Эффективное хранение списка файлов

Эффективное хранение списка файлов

Допустим, есть N-ое кол-во директорий, в каждой директории хранится M файлов с уникальными именами, которые не пересекаются с файлами из других...

182
Запустится ли приложение?

Запустится ли приложение?

Запустится ли приложение, если скомпилировано подNet Framework 3

293
Opensource Sip клиент

Opensource Sip клиент

Надо сделать SipClient с плюшками под ВиндуХотела взять какой нибудь опенсурс и допилить

234