У меня есть приложение Silverlight 4, которое раскрывает объекты от базы данных с помощью WCF сервисы RIA. Эти объекты данных довольно просты, всего несколько полей, но одно из тех полей содержит двоичные данные произвольно размер. Для приложения нужен доступ к этим данным в основном как можно скорее после того, как пользователь вошел в систему, чтобы отобразиться в списке, включить выбор и т.д.
Моя проблема из-за размера этих данных, время загрузки не приемлемо и может приблизиться к тайм-ауту по умолчанию сервиса RIA.
Я хотел бы так или иначе частично загрузка объекты в мой локальный контекст данных так, чтобы у меня были идентификаторы, имена и т.д., но не двоичные данные. Я мог затем позже (т.е. когда это на самом деле необходимо), заполняют двоичные поля тех объектов, которые я должен отобразить.
Любые предложения о том, как выполнить это, приветствовались бы.
Другой подход, который произошел со мной при записи этого вопроса (как часто это происходит?!) то, что я мог переместить двоичные данные в отдельную таблицу базы данных, соединенную с исходной записью 1:1, который позволит мне использовать ленивую загрузку RIA на этом двоичные данные.
снова.. приветствующиеся комментарии!Спасибо.
Не меняйте базу данных. Измените способ доставки.
Создайте отдельную службу WCF RIA для быстрого списка элементов и используйте POCO (простой старый объект clr) для отправки сводки необходимых данных. Затем, когда вы будете готовы к большому успеху, вы можете загружать по одному, основываясь на данных из вашего POCO.
Брэд Абрамс и Нихил Котари некоторое время говорили об использовании POCO. Посмотрите их выступления MIX для получения дополнительной информации.
Создайте новую службу для элементов быстрого списка:
public class QuickListService : LinqToEntitiesDomainService<MyEntities>
{
private IQueryable<QuickList> GetQuickList()
{
return from t in ObjectContext.Table
select new QuickList
{
ID = t.ID,
Title = t.Title
};
}
}
POCO - это просто объект на сервере, например:
public class QuickList
{
public string Title;
public long ID;
}
Удачи!
п.с. Приложение Nikhil's BookClub делает это очень часто. Если вам нужно увидеть, как это делает реальное приложение, загрузите его приложение: http://www.nikhilk.net/Content/Presentations/MIX10/BookClub.zip