0

2つのサイトがあります。1つはデータベース内のすべての値を編集できる管理サイトで、もう1つはデータベースからデータを読み取るだけのパブリックサイトです。両方のサイトには、データベースで機能する同一のdbmlファイルがあります。新しい車を挿入すると(サイトは車に関するものなので、すべての値は車に関連しています)、そのデータは、挿入された値がすぐに公開サイトに表示されます...車のデータを更新すると、データベースの値が変更されますすぐに、しかしパブリックサイトは古い値を表示し続けます...クエリごとにdbmlファイルの新しいインスタンスを使用して、dbmlファイルにデータベース内の値を強制的に読み取らせることができることを読みました...

私はすべてのクエリを入れたコードファイルの次のコードでこれを行います...しかしこれは機能しません...

 Public Shared AixamReader As FrontstoreAdministrationDataClassesDataContext = New FrontstoreAdministrationDataClassesDataContext

次に、各クエリでAixamReaderを呼び出します...

dbmlファイルにデータベースから更新された値を取得させるためのより良い方法はありますか?

4

1 に答える 1

0

問題の原因は DBML ファイルではありません。DBML はデータを読み取ったり、クエリを実行したりしません。実際の作業を行うクラスを生成するためのベースにすぎません。

したがって、実際のデータベースでデータを更新/挿入しても、DBML ファイルには影響しません。

ここで DMBL ファイルと呼んでいるのは、実際には DataContext だと思います。

はい、「古い」DataContext を使用してクエリを実行し、その間にデータが別のプロセスによって更新された場合、その DataContext で実行するクエリには表示されません。これは、「古いデータ コンテキスト」とも呼ばれます。

したがって、リクエストごとに新しい DataContext を使用すると、問題は解決します。とにかく、DataContext は非常に軽量で、このように使用するように設計されています (作業単位ごとに新しいもの)。

于 2012-12-23T10:22:58.980 に答える