Entity Framework Oracle и Sql Server - как создать приложение, независимое от базы данных - PullRequest
8 голосов
/ 24 января 2012

Мы пытаемся создать слой доступа к данным для использования как Oracle, так и SQL Server (не одновременно).

Мы используем EF Model-first для создания модели и создания сценариев SQL для построения базы данных.Нашей первой мыслью было создать 2 файла EDMX, по одному для каждого типа, и использовать соответствующий в зависимости от потребностей клиента.Мы используем рабочий процесс генерации базы данных Oracle и SQL Server и шаблон генерации DDL для создания сценариев для каждой базы данных.

Наша основная проблема заключается в том, что при изменении схемы базы данных мы не хотим удалять и воссоздавать БД, а толькосоздайте сценарии миграции для обновления базы БД в нашей модели (у клиентов много данных, которые будут потеряны).

Мы используем EF power pack для извлечения сценариев миграции для SQL Server, но для Oracle нет ничего подобного.

Мы хотим помочь найти хороший уровень данных (1 EDMX для Oracle и SQL Server, если это возможно и не сложно) и хороший способ генерировать изменения базы данных из нашей модели для обновления существующих клиентских баз данных в случаеновой версии приложения

Мы нашли это в качестве отправной точки http://msdn.microsoft.com/en-us/data/ff830362, но здесь нет упоминания о поддержке Oracle.

Мы пробовали миграцию кода и EF, но Oracleнам снова не удалось создать и перенести БД.

Любые рекомендации о том, какмы можем сделать это?

Спасибо

Ответы [ 2 ]

4 голосов
/ 24 января 2012

Не существует единого EDMX для SQL Server и Oracle.EDMX состоит из трех частей: CSDL (определение объекта), SSDL (определение базы данных), MSL (отображение между этими определениями).SSDL всегда должен быть нацелен на конкретную базу данных, поэтому вам нужен как минимум отдельный SSDL для Oracle и SQL Server, и если вам повезет, вам также не понадобится отдельный MSL (отображение должно быть точно таким же, что, вероятно, не произойдет, если вы используете какой-либо инструмент для генерациибазы данных).

Таким образом, вам всегда нужна хотя бы часть файла EDMX для второй БД и ее поддержка вручную.

Если вам нужна миграция БД с поддержкой Oracle, вы должны искать инструмент из Oracle (илитретья вечеринка).Например, RedGate предлагает инструменты, поддерживающие миграцию схемы для SQL Server и Oracle .

Visual Studion Premium и Ultimate Edition также предлагают инструменты для сравнениясхемы базы данных.По умолчанию он поддерживает только SQL Server, но Toad Extensions также должен добавить поддержку Oracle.

Как только у вас появится какой-либо из этих инструментов, вам просто нужно сравнить схему, развернутую на сервере клиента, с вашим новымсхема и инструмент должны создать сценарий миграции для вас.

0 голосов
/ 22 января 2014

Лучшая статья, которую я нашел по этой теме, - из Блог Пола Рейнольдса . Попробуйте перейти от части 5 к части 9.

В Oracle упоминается так много ошибок ... очень полезно!

...