2016-07-27 11 views
1

私は別のデータレイヤーを考えています。私は異なるSQLサーバー間の負荷を分散したい。それがSELECT文であるかどうwebアプリケーションは、SQL要求、「アプリケーションプロキシ」のチェックを行いEntity FrameworkとSQL Serverの間でSQLメッセージをインターセプトして操作する

enter image description here

:そうするために、私は心の中で次のセットアップを持っています。 SELECT文の場合、「アプリケーションプロキシ」はSELECT文を1つのサーバに送信します。 SELECTステートメントでないときは、すべてのサーバーに要求を送信します。

私はこの状態でのアイデアがうまくいかないことを知っています。これを実現するには、さまざまな問題を解決する必要があります。しかし、今のところ最大のスタートアップ問題は、Entity Frameworkとの統合です。

自分のクラスにDbContextをラップして、メッセージを傍受して自分自身で送信できるようにします。だからこのようなもの:

public class MyDbContext : DbContext 
{ 
    public override string DoCallToServer(string sqlrequest) 
    { 
     if (sqlrequest.ToLower().StartsWith("select")) 
     { 
      return MyEngine.CallAll(sqlrequest); 
     } 
     else 
     { 
      return MyEngine.CallOne(sqlrequest); 
     } 
    } 
} 

これは可能ですか?

私はインターネットを検索しましたが、何も見つかりませんでした。ここで

+0

https://msdn.microsoft.com/en-us/ data/dn469464.aspx?f = 255&MSPPError = -2147217396#BuildingBlocks –

+0

これは非常に良い例ですが、少なくともEF 6以降が必要です(確認する必要はありません)。http:// www。 entityframeworktutorial.net/entityframework6/database-command-interception.aspx –

+0

@bassam、なぜ答えとして投稿しませんでしたか?それだった、ありがとう! – ikwillem

答えて

関連する問題