1

Я изучаю услуги RIA с помощью silverlight 4 и учитывая его использование. Переход на Silverlight из ASP вызывает некоторые сомнения относительно зрелости silverlight для приложений, управляемых данными.Как службы RIA для эффективности реляционных данных?

Я смотрел реляционные запросы данных. Допустим, у меня есть таблица «человек» и «автомобиль». Несколько человек могут быть связаны с человеком. Теперь, если я делаю запросы с реляционными данными, я должен указать, чтобы добавить дополнительные таблицы, которые будут возвращены клиенту с сервера. Показанный здесь:

http://timheuer.com/blog/archive/2010/01/05/master-details-with-ria-services-and-includedresults.aspx

Я немного обеспокоен эффективностью. Если я сделаю что-то вроде этого, кажется, что я потенциально отправляю несколько строк из таблицы автомобилей для каждой строки пользователя (с одной по другую). Тем не менее, мне может понадобиться только название автомобиля, а не другие столбцы. Более сложный пример с кучей реляционных объединений с другими таблицами может стать уродливым. Есть ли способ решить эту проблему? Я не вижу много информации о пользовательских/сложных типах или о том, как службы ria обрабатывают представления базы данных.

Еще одна моя мысль заключается в том, что если у меня есть реляционные данные, которые возвращаются на себя, это закроет запрос. Например, если человек связывается с автомобилем и автомобилем, он связывается с какой-либо другой таблицей, а эта таблица ссылается на человека. Казалось бы, навсегда?

ответ

2

Объем переданных данных (или нет) с услугами RIA полностью зависит от вас. Вы не обязаны включать все данные дочерних таблиц. Да, можно писать действительно неэффективные запросы данных, но также можно сделать их оптимальными.

Бесконечные петли обычно не встречаются в моделях ER. Это ничем не отличается от запуска соединения в таблицах в SQL.

Если вы действительно заинтересованы в максимальной эффективности (вначале маловероятно), вы, вероятно, будете использовать обработчики SQL-хранилища в любом случае на стороне сервера и нажимаете на эти procs с определенными параметрами, чтобы выполнить работу с ворчанием.

У меня есть несколько больших систем с Silverlight 3, и теперь я работаю с 4 и лично мне будет сложно вернуться к ASP.Net сейчас. Легче развиваться (как только вы узнаете, что это причуды) и на самом деле очень весело :)

Надеюсь, это поможет.

+0

Для сложных запросов обычно вы включаете таблицы или просто вы извлекаете идентификатор внешнего ключа, а затем вызываете другой запрос (например, getNameFromID (int id))? – Adam

+0

В основном, чтобы поддерживать сетевой трафик, мы запрашиваем определенные элементы по идентификатору. Если мы запрашиваем список элементов (например, для выбора), мы обычно возвращаем пары идентификаторов и отображаемых имен и не намного больше (это предполагает, что мы будем получать полные данные по каждому элементу, когда они понадобятся). –

 Смежные вопросы

  • Нет связанных вопросов^_^