8

OracleとSQL Serverの両方を同時に使用するためのデータアクセスレイヤを構築しようとしています。Entity Framework OracleとSQL Server - データベースに依存しないアプリケーションを構築する方法

モデルを作成し、データベースを構築するためのSQLスクリプトを作成するために、EF Model-firstを使用します。最初の考えは、タイプごとに1つずつ2つのEDMXファイルを作成し、クライアントのニーズに応じて適切なファイルを使用することでした。 OracleおよびSQL Serverのデータベース生成ワークフローおよびDDL生成テンプレートを使用して、各データベースのスクリプトを作成しています。

私たちの主な問題は、データベーススキーマが変更されたときに、DBを削除して再作成するのではなく、モデル上のDBベースを更新するための移行スクリプトを作成するだけです(クライアントには多くのデータが失われます)。

SQL Server用の移行スクリプトを抽出するのにEFパワーパックを使用しますが、Oracle用のものはありません。

オラクルとSQL Serverの両方で1つのEDMXが可能で複雑な場合は、1つのEDMXを見つけることができます。また、モデルからのデータベース変更を生成して、新しいアプリケーションのリリース

これを開始点として見つけました http://msdn.microsoft.com/en-us/data/ff830362しかし、Oracleのサポートについての記載はありません。

私たちはコードファーストとEF移行を試しましたが、OracleはDBの作成と移行に再び失敗しました。

これを達成するための推奨事項はありますか?

ありがとう

答えて

4

SQL ServerとOracleの両方で単一のEDMXを使用する方法はありません。 EDMXは、CSDL(エンティティ定義)、SSDL(データベース定義)、MSL(これらの定義間のマッピング)の3つの部分で構成されています。 SSDLは必ず具体的なデータベースをターゲットにして、少なくともOracleとSQL ServerのSSDLを別々にする必要があります。幸運なことに、別のMSLも必要ありません。マッピングはまったく同じでなければなりません。データベース)。

したがって、2番目のDBには常にEDMXファイルの少なくとも一部が必要であり、手動でそれを維持してください。

OracleをサポートするDB移行が必要な場合は、Oracle(または第三者)からツールを探す必要があります。たとえば、RedGateは、SQL ServerOracleのスキーマ移行をサポートするツールを提供しています。

Visual Studion PremiumおよびUltimateエディションには、データベーススキーマを比較するツールもあります。デフォルトではSQL Serverのみがサポートされていますが、Toad ExtensionsはOracleのサポートも追加する必要があります。

これらのツールを使用したら、顧客サーバーに展開されているスキーマと新しいスキーマを比較するだけで、移行スクリプトが作成されます。

+0

この独立性を持っているにもかかわらず、気高く少し複雑です。TelerikのOpen Access ORMを試したことがありますか?SQL ServerやOracleを含む多くのデータベースを探しており、移行を処理しているようです。 – christosst

0

このトピックで見つけたベスト記事はPaul Reynolds Blogです。 パート5からパート9に進むようにしてください。

オラクルについては非常に多くの問題があります。非常に参考になります!

関連する問題