2016-11-10 4 views
0

私のチームは、当社のコアアプリケーションデータからユーザーデータを分離したいと考えています。私たちはSQL Server 2014とEF 6.x Code Firstを使用しています。 UsersデータベースとApplicationデータベースを作成すると、UserオブジェクトとOrderオブジェクトの関係についてEFに伝える方法はありますか? Ordersがアプリケーションデータベースに格納され、ユーザーがUsersデータベースに格納されていると仮定します。ユーザーデータベースからユーザーをインスタンス化し、アプリケーションデータベースに注文の一覧を照会することができますが、私たちが探しているのは、テーブルが同じデータベースにあるかのように機能するソリューションですユーザーが検索されると、2番目の呼び出しなしでそのオーダーのリストが利用可能になります。1つのEF 6データレイヤーを使用して2つのデータベースから関連データにアクセス

基本的には、エンティティを特定のコンテキストにマッピングし、それぞれのデータベースを指す各コンテキストをインスタンス化し、EFで呼び出しを並べ替える方法を探しています。

答えて

1

はい、ただし、データベースサーバーの設定を行う必要があります。

アプリケーションデータベースでは、Usersデータベース内のテーブルのシノニムを定義できます。このシノニムを使用して、エンティティをアプリケーションDB内の通常のテーブルと同じようにマッピングできます。

エンティティフレームワークに関しては、アプリケーションデータベースを指すのと同じDbContextを使用しますが、ユーザーデータベースから情報を取得できます。

これは、アプリケーションデータベースを特定のUsersデータベースを指すようにセットアップする必要があるという欠点があります。

+0

ありがとうございましたVlad、これは私たちが探しているものとまったく同じように思えます!あなたが言及している欠点は、ユーザーデータベースが1つだけではなく、複数のアプリケーションデータベース(クライアントが必要とする独立性レベルに応じて)が存在するため、私たちにとっては問題ではありません。私はスピンのアイデアを取った後、これを答えとしてマークします。 –

+0

@MikeDevenneyこの問題は、複数の環境がある場合に実際に表示されます。慎重でない場合は、誤ってQAアプリケーションデータベースをPRODユーザーデータベース(またはその他のもの)と照合する可能性があります。 – Vlad274

+0

@MikeDevenneyそれがあなたの問題を解決したのですか? – Vlad274

関連する問題