Я работаю над личным проектом, использующим WPF с Entity Framework и Self Tracking Entities.У меня есть веб-сервис WCF, который предоставляет некоторые методы для операций CRUD.Сегодня я решил сделать несколько тестов и посмотреть, что на самом деле путешествует по этому сервису, и хотя я ожидал чего-то подобного, я был очень разочарован.Проблема заключается в том, что для простой операции обновления (или удаления) только для одного объекта - скажем, Category , я отправляю на сервер весь граф объектов, включая все его родительские категории, их элементы, дочерние категории иих элементы и т. д. В моем случае это был XML-файл размером 170 КБ в очень маленькой базе данных (2 основные категории, всего около 20 и около 60 элементов).Я не представляю, что произойдет, если у меня действительно большая база данных.
Я попытался найти в Google несколько статей, касающихся оптимизации трафика с помощью STE, но безуспешно, поэтому я решил спросить здесь, сделал ли кто-точто-то похожее, знакомы с некоторыми хорошими практиками и т. д.
Один из возможных способов, с помощью которых я пришел, состоит в том, чтобы получить нужные мне данные для объекта с большим количеством вызовов службы:
return context.Categories.ToList();//only the categories
...
return context.Items.ToList();//only the items
Вместо:
return context.Categories.Include("Items").ToList();
Таким образом, категории и элементы будут разделены, и при внесении изменений или удалении некоторых объектов данные, передаваемые по проводам, будут меньше.
Кто-нибудь из вас сталкивался спохожая проблема и как вы ее решили или решили?