2008-08-28 5 views
3

DataContextの寿命モデルは何ですか?私はそれを必要とするときはいつでも新しいクラス(関数レベル)を作成する必要があります。クラスレベルでクラスを使用できるようにするか、静的なDataContext(app-domainレベル)?これについてベストプラクティスが検討されていますか?DataContextの最適なパターン

答えて

5

.SubmitChanges() 'dの変更を保存しようとしている場合は、実行したい操作のライフタイム全体にわたって同じデータコンテキストを利用できるようにする必要があります。そうしないと、変更。

あなたが物事を照会しているだけなら、必要に応じてそれらを作成してもいいですが、後で.SubmitChanges()にしたい場合は、コードを多くリファクタリングする必要があります。あなたのアプリ全体で最初からdatacontextのグローバル。

データコンテキストは、が切断されています。です。接続は、クエリデータがの場合、(クエリを最初に実行したときではなく、必要なときにのみデータを提供する「遅延データ型」)であり、その後すぐに閉じられます。 .SubmitChanges()で変更を送信するために接続が開き、その後すぐに閉じられます。だから、datacontextの周りに接続を開いたままにしておくのではないと思います(これを確認するために接続のStateChangeイベントをフックすることができます)。

Rick Strahl's Blogには素晴らしい記事がありますが、このトピックを詳しく解説していますが、私の答えはここにあります。

0

私はジェフ・アトウッドがHerding Code podcastでこれについて話したと思います。まったく同じことについて質問されました。最後の15〜20分ほど聞いてください。

私はSOで、datacontextがControllerクラスで作成されていると思います。詳細についてはここではわかりません。しかし、それはそれが見えるものです。

関連する問題