2011-07-07 20 views
-1

軽量プロキシを検索していたため、1回のヒットで1つまたは複数のオブジェクトをインスタンス化できませんでした。遅延初期化、ORM、およびラムダ

rationale:リクエストがバッチ処理され、サーバーに送信された可能性があります。すなわち、個々に行われる場合にはn *レイテンシにつながる。さらに、バッチ処理された要求が1つのラムダまたはSQL文によって処理される場合は、時間を節約できる可能性があります。

シナリオ: は、我々はデータベース、POCOモデル、そのモデル(コード生成/シリアライズ)を露出させる方法、およびSilverlightクライアントを持っていると言います。 POCOモデルをCRUDスタイルのサービスを通してプッシュするのではなく、POCOモデルの観点から更新を記述することができれば、それは賢明ではないでしょうか?代わりに、オブジェクトグラフを送信するように。

WCFではこのようなことがありますか?唯一のことは、私はむしろWCFを使用しないことです。また、nhibernateのようなものはASPのシナリオでは最高のようです。

私の最初の考えは、このようなことをすることでしたが、これまでのところ私は非常に遠くには達しませんでした。

  private Lazy<Person> _person = new Lazy<Person>(() => new Person()); 
      public Person person 
      { 
       get { return _person.Value; } 
      } 
+1

これはプロキシとは関係ありません。単純に遅延初期化です。 –

+0

そしてそれはあまりにも複雑な遅延初期化です。何が問題なのですか(_person.value == null){ \t _person = new person(); } return _person; –

+0

gee。とても多くのdownvotes。それは完全な画像を説明する良い動機ではありません。 – sgtz

答えて

0

はたぶん、あなたは一度、単一の項目がテロードされた全体の「質問」のリストを実行怠惰な初期化とクライアントの「質問」リストを作成する必要があります。この後、新しいリストを開始し、必要に応じてロードするだけです。

ネットワークを効率的に(優先度などに基づいて)使用していることを確認するために、スレッドを追加してバックグラウンドスレッドの「質問」リストを空にすることもできます。

+0

私はその方向性を考えていました...何らかの2段階の初期設定。契約を結んで(クライアント側の契約がサーバー側の契約と一致していなければならない) – sgtz

+0

私が持っているすべてのアイデアは、書くためのコードがたくさんあり、完全にカスタムソリューションになるでしょう。たぶん誰かがこれを行う一般的に受け入れられた方法を知っているかもしれません。 – CodingBarfield

+0

。これを純粋なスキーマ中心の方法で解決するのはすばらしいことです。コード生成が関わっているのであれば気にしません...パターンがある限りです。 – sgtz

関連する問題