私は、エンティティフレームワークと自己追跡エンティティでWPFを使用する個人的なプロジェクトに取り組んでいます。CRUD操作のいくつかのメソッドを公開するWCFWebサービスがあります。今日、私はいくつかのテストを行い、実際にこのサービスを通過するものを確認することにしました。このようなことを期待していましたが、本当にがっかりしました。問題は、1つのオブジェクトのみの単純な更新(または削除)操作の場合です。たとえば、カテゴリIが、すべての親カテゴリ、そのアイテム、子カテゴリ、およびそのアイテムなどを含むオブジェクトグラフ全体をサーバーに送信するとします。私の場合、それは非常に小さなデータベース(2つの主要なカテゴリと約20の合計と約60のアイテム)上の170KBのxmlファイルでした。本当に大きなデータベースを持っているとどうなるか想像できません。
STEを使ったトラフィックの最適化に関する記事をグーグルで検索しようとしましたが、成功しなかったので、誰かが似たようなことをしたか、いくつかの良い習慣を知っているかなどをここで尋ねることにしました。
私が思いついた可能性のある方法の1つは、より多くのサービス呼び出しを使用して、オブジェクトごとに必要なデータを取得することです。
return context.Categories.ToList();//only the categories
...
return context.Items.ToList();//only the items
それ以外の:
return context.Categories.Include("Items").ToList();
このようにして、カテゴリとアイテムが分離され、変更を加えたり、一部のオブジェクトを削除したりするときに、ネットワーク経由で送信されるデータが少なくなります。
同様の問題に直面したことはありますか?どのように解決しましたか、それとも解決しましたか?