0

Devexpress Gridview を使用していますが、キャッシュの問題があります。

ここのようなページを開発しました: http://mvc.devexpress.com/GridView/SimpleCustomBinding

想定どおりに機能しています。ただし、データベース (Mssql) の列の値を更新しても、Gridview は値を変更しません。

Web を検索したところ、EnableRowsCache が false でなければならないことがわかりましたが、このプロパティはさまざまな種類 (またはバージョン) の Gridview で利用可能であり、MVC 拡張機能を使用しているため、実装できませんでした。

キャッシュを無効にして「新しい」データを表示する方法を知っている人はいますか?

- - - アップデート - - -

掘り下げて検索した結果、キャッシュが devexpress によるものではなく、linq to sql の結果であることが明らかになりました。ビューの結果をキャッシュし、更新された値を表示しないのは linq のプロパティです。

4

1 に答える 1

0

この問題は私たちにとって大きな頭痛の種でしたが、今、同僚と結論を出しました。

問題

まず、db に ViewBook という名前のビューがあるとします。

ViewBook
Id | Title | Author

そして、次のクエリを記述します。

(from VB in Connection.ViewBook
select VB).ToList();

その結果、行のリストが取得されます。

次に、データベースの行を更新すると、このクエリは新しいデータを表示せず、古いデータを返します。

解決

これを解決するには、まずオブジェクトを定義します。

public class ViewBookObject : ViewBook
{
  //this object will have all the properties of ViewBook.
}

次に、クエリで:

(from VB in Connection.ViewBook
select new ViewBookObject {
  Id = VB.Id,
  Title = VB.Title,
  Author = VB.Author
}).ToList();

このクエリは、常に最新のデータを表示します。

結論

この状況と同様の問題を抱えている人のために、この解決策をここに書きました。

これがすべての人に役立つことを願っています。

于 2014-01-25T11:30:16.820 に答える