2009-03-31 16 views
3

このパターンはどこでも表示されますが、Linq to SQLでは実装されていません。 Session/Unit-of-Workオブジェクトが軽量(パフォーマンス上のペナルティなしで作成および破棄できる)で、接続プールによってデータベース接続が維持される場合、なぜセッションの要求パターンが必要ですか?リクエストごとのセッションパターンを使用する必要がある場合

答えて

3

セッションごとのセッションの考え方は、セッションを開いたり閉じたりするときの方がパフォーマンスが向上することではないと思います。

アイデアは、あなたのコードは、これまで

  • あなたのビジネスロジックあなたのフレームワークと呼ばれる前にトランザクションを開始しますセッションを開く

    1. 最後可能になるまでデータベースへのフルアクセス権を持っているということです瞬間
    2. あなたの取引は毎回自分で行うのではなく、あなたのためにコミットされます

    #2のアイデアは重要なので、Webフレームワークとデータの遅延読み込みを混在させることができます。コードが実行された後にデータをレンダリングしているときにゲッターメソッドが呼び出され、セッションを閉じた場合、そのゲッターの結果を遅延ロードできませんでした。

  • 0

    これは実際には、ほぼすべてのチュートリアルが避けるように思われる良い質問です。

    遅延読み込みを使用しない場合は、必要ありません。

    関連する問題