2012-01-27 1 views
0

データベースを照会するためにEntity Frameworkを使用しているWinFormsアプリケーションがあります。クエリは、すべてのレコードをテーブルから取得し、関連するテーブルからすべてのレコードを取得します。親テーブルの結果をBindingSourceに割り当てて、それを別のBindingSourceに割り当てて子レコードにアクセスします。親BindingSourceComboBoxに、子BindingSourceDataGridViewにそれぞれ結合されている。これはすべて期待通りに機能します。ObjectQuery.Executeを使用してナビゲーションプロパティをリフレッシュする

私の問題はこれです。ある時点で、データベースからすべてのレコードをプルダウンしてビューを更新する必要があります。私は現在この作業をしていますが、子レコードではなく、親レコードのみを更新します。

オプションを使用してObjectQuery.Executeを使用することで、唯一の成功を収めました。これにより、親レコードと子レコードの両方が更新されますが、間違っていなければ、すべてのトラッキングが失われます。

子レコードを更新するにはどうすればよいですか?私はIncludeメソッドを使用しようとしましたが、子レコードテーブルを指定しましたが、それは影響はありませんでした。

答えて

0

最高のオプションは、単に新しいコンテキストを作成してコントロールを再バインドし、再度クエリを実行することです。エンティティをリフレッシュすることは、主に長い生活のコンテキストを維持することではなく、並行性の問題を解決することにあります。

リレーションをリフレッシュする場合は、リフレッシュをサポートするリレーションシップのエンティティセットを構成する必要があります。現在、ほとんどの場合、現在のオブジェクトセットまたはオブジェクトクエリのみを設定し、メインエンティティのみの動作を設定します。

関連する問題