ПРОЧИТАЙТЕ ПЕРВОЕ, прежде чем ответить!
У меня есть служба RESTful, которая работает вокруг Entity Framework. По сути, все, что я делал, это создавал базу данных, добавлял связи между таблицами, создавал модель Entity вокруг этой базы данных и, наконец, представлял все это как службу RESTful * .svc. Это сделано, также не может быть изменено.
Теперь мне нужно запросить данные из него через клиентское приложение. Все, что я могу получить, это сам сервис. Я не могу добавить серверный код, даже если бы захотел. Сервер теперь заблокирован.
Мне нужно получить данные из таблицы с именем «ProductVoorwaarden» (условия продукта), которая связана с тремя другими таблицами. (Rubriek, Category и Datatype.) Эти данные должны быть возвращены в виде XML с корневым узлом с именем «PRODUCTVOORWAARDEN» и каждой записью в своем собственном XElement с именем «REC». В этом REC есть атрибут для каждого поля в таблице плюс ссылки на связанные таблицы. Вот код, который я сейчас имею:
XElement PRODUCTVOORWAARDEN()
{
XElement Result = new XElement("PRODUCTVOORWAARDEN");
var Brondata = COBA.Productvoorwaarden.OrderBy(O => O.Code);
foreach (var item in Brondata)
{
COBA.LoadProperty(item, "Rubriek");
COBA.LoadProperty(item, "Categorie");
COBA.LoadProperty(item, "Datatype");
XElement REC = new XElement("REC",
Attribute("Rubriek", item.Rubriek.Code),
Attribute("Categorie", item.Categorie.Naam),
Attribute("Code", item.Code),
Attribute("Datatype", item.Datatype.Naam),
Attribute("Eenheid", item.Eenheid),
Attribute("Naam", item.Naam),
Attribute("Omschrijving", item.Omschrijving),
Attribute("UitgebreideTekstVeld", item.UitgebreideTekstVeld),
Attribute("Veld", item.Veld)
);
Result.Add(REC);
}
return Result;
}
Этот код работает нормально, но медленно. Он читает все записи ProductVoorwaarden, но затем он должен снова совершать обходы на сервер для каждой записи, чтобы получить Rubriek.Code, Categoryorie.Naam и Datatype.Naam. (В базе данных эти отношения устанавливаются с помощью поля автоинкрементной идентификации, но в качестве кода XML используется код или Naam.)
Как вы можете себе представить, каждая поездка обратно на службу RESTful просто съедает больше времени, которого я стараюсь избегать. Так есть ли способ ускорить это все на стороне клиента?
<ч />
Сервер все еще находится в стадии разработки, и следующий выпуск займет еще несколько месяцев. В результате мне приходится иметь дело с параметрами, которые сервер предоставляет прямо сейчас. Если нет способа ускорить это без изменения сервера, тогда хорошо. По крайней мере, я пытался. Есть еще 35 таблиц, которые должны быть обработаны с крайним сроком в течение нескольких дней, так что если он работает, то он работает.