0

msdnのドキュメントには、コントロールをオブジェクト クエリに直接バインドしないことが推奨されています。

コントロールを ObjectQuery に直接バインドしないことをお勧めします。代わりに、コントロールを Execute メソッドの結果にバインドします。

私はまた、それを推奨し、モデル自体のインスタンスにバインドしないことを推奨する SO に関するいくつかの回答も読みました。それにもかかわらず、これまでに行ったすべてのテストが正常に機能しているように見えるため、推奨されない理由を見つけることができませんでした.

これらのオブジェクトをバインディングに使用すべきではない理由を誰かが明らかにすることはできますか?

4

2 に答える 2

1

その info の下のリンクをたどると、説明が表示されます。

コントロールを ObjectQuery に直接バインドしないことをお勧めします。代わりに、コントロールを Execute メソッドの結果にバインドします。この方法でバインドすると、バインド中にクエリが複数回実行されるのを防ぐことができます。

バインド中にクエリを実行したくない場合。知らないうちにバインディングの更新によってデータベース クエリがトリガーされることは望ましくありません。また、エンティティへのバインドが他の問題を直接引き起こすこともわかりました。オブジェクトを保持することで、ObjectContext も保持する必要があります。通常、ObjectContext はできるだけ短く、できれば using ブロック内に配置する必要があります。

于 2012-07-05T13:31:37.170 に答える
0

「なぜコントロールを ObjectQuery にバインドしてはならないのか」という質問に対して:

ここから引用:

データ ソースが最新であることを確認するには、Execute メソッドを使用してクエリを再度実行する必要がある場合があります。これにより、コントロールが新しい ObjectResult にバインドされます。

を呼び出さないとExecute、実行後にクエリが実際に返す内容と比較して、UI に表示される内容が最新ではない可能性があります。もちろん、データベースで変更が発生しても、バインディングは自動的に更新されません。

2 番目のポイント:

コントロールを ObjectQuery に直接バインドしないことをお勧めします。代わりに、コントロールを Execute メソッドの結果にバインドします。この方法でバインドすると、バインド中にクエリが複数回実行されるのを防ぐことができます。

于 2012-07-05T13:31:29.687 に答える