0

数週間試してグーグルで調べた後、この質問をしていますが、これを解決できませんでした。

私のアプリケーションでは、EF モデルを使用しています。TransportPlanning という画面があります。その中で、以下のように ICollection にバインドされたデータグリッドがあります。

 ICollectionView view = CollectionViewSource.GetDefaultView(lstOrdsRlsd);

ここで、lstOrdsRlsd は、次のように OrdsRlsd と呼ばれるテーブル エンティティのリストです。

List<OrdsRlsd> lstOrdsRlsd = new List<OrdsRlsd>();

フィルタリングに ICollectionView を使用しています。

以下のように、タイマーを使用してデータベースから最新のレコードを取得します。

 void timer_Tick(object sender, EventArgs e)
    {
        dbContext.SaveChanges();
        lstOrdsRlsd = dbContext.OrdsRlsds.Where(o => o.Location == MillName).ToList();
        view = CollectionViewSource.GetDefaultView(lstOrdsRlsd);
        dgRecords1.ItemsSource = view;
    }

しかし、データベースから最新のレコードを取得していません。データベースから変更されたレコードが必要です。

私はMVVMモデルを使用していません。

4

1 に答える 1

1

クエリを実行するたびdbContextに、コンテキストのキャッシュからエンティティを取得します。DB から新しいデータを取得するには、コンテキストの新しいインスタンスを作成するか、コンテキストの Refresh メソッドを呼び出す必要があります。

于 2013-02-16T13:39:36.360 に答える