2つのモードで動作できるプログラムを作成するプロジェクトがあります。
内部ユーザーは一元化されたデータベース(SQL Server)にアクセスし、お互いのアイテムを表示/編集できます。
外部の顧客は、すべての独自のデータをローカルで作成し(SQL Server Compact)、それを電子メールでXMLにパッケージ化して、見積もりを要求します。
問題は、メンテナンスを最小限に抑え、EF機能を最大化するためにこれを行うための最良の方法は何ですか?また、SQL Serverのストアドプロシージャを書き込み操作に使用したいのですが、問題が多すぎる場合、これは最優先事項ではありません。
展開前に別のSSDLを手動で作成することもできますが、これは余分な作業であり、エラーが発生しやすくなります。モデルファーストに移行することもできますが、両方のプロバイダーのデータベースの更新が複雑になると思います。DbContext Generator T4テンプレートを使用してコードファーストの方向に進むことはできますが、変更の追跡やストアドプロシージャのマッピングなど、EFの多くの利点が失われます。また、CFを使用すると、T4テンプレートを大幅に拡張する必要があります。そうでない場合は、別のSSDLを作成する必要があります。
これを簡単にするための記事やツールはありますか?
編集:これを実現するための最良の方法は、Code Firstを使用してモデルを作成し、新しいコードファーストの移行を使用することでした。移行を使用すると、サーバーインスタンス全体の変更スクリプトを生成でき、ローカルCEデータベースに変更全体を適用できます。もう1つの利点は、接続文字列を完全に制御でき、実際に任意のプロバイダーを指すことができることです。
POCOクラスを手動で作成し、構成クラスを作成し(Fluent APIで定義することをお勧めします)、最初の移行クラスに追加(一意のインデックスなど)を追加するのは少し余分な作業ですが、最終的には最小限に抑えられます。全体的に機能します。
後日、ストアドプロシージャの使用法を回避する方法を理解する必要がありますが、それまでにEF 5が利用可能になる可能性があり、問題は解決しました。