1

同じ Northwind データベースを操作するプログラムの 2 つのインスタンスがあります。
インスタンスの 1 つからデータベースにいくつかのレコードを追加すると (たとえば、顧客の外部キーを使用して Orders テーブルにいくつかの注文を追加するJohn場合)、プログラムの他のインスタンスからこれらの新しいレコードを適切にクエリできます。を使用してこれらの新しいレコードにアクセスしたいときに問題が始まりますJohn.Orders。この場合、プログラムの 2 番目のインスタンスは、新しく追加されたレコードを認識しません。私は何をすべきか?

4

1 に答える 1

1

DataContextあなたが抱えている問題は、おそらく LINQ to SQLクラスを有効にしておく時間に関連しています。通常、それを使用する各作業単位の後に破棄する必要があります (「作業単位」設計パターンに従っているため)。これは、通常、各ユース ケース/ビジネス トランザクションの後を意味します。

おそらくDataContext、アプリケーションの存続期間全体にわたってクラスを存続させているでしょう。このDataContextクラスはこれには適していません。一度取得したすべてのオブジェクトをキャッシュするため、データが古くなってしまうからです。

DataContext操作ごと、またはユーザーが新しいフォーム/画面を開くたびに、新しいクラスを作成します。

于 2010-07-21T18:51:17.097 に答える