Я очень плохо знаком с услугами Silverlight и WCF Ria. У меня есть опыт работы в WPF и WinForms.
Сейчас я занимаюсь разработкой приложения silverlight, которое в основном состоит из веб-страницы, извлекающей данные с удаленного сервера.
Я прочитал множество форумов и статей, которые объясняют, как использовать и использовать веб-сервисы и WCF. Я следовал пошаговой инструкции msdn о том, как создать простое приложение, которое получает данные из БД, и оно прекрасно работает.
Проблема в том, что мне не нужен код или ресурс, связанный с WCF, в моих элементах управления пользовательским интерфейсом.
Прямо сейчас я использую архитектуру многоуровневого программирования:
UI -> BLL -> DAL
Каждый из этих элементов представляет собой один проект в одном решении. Мой проект DAL - это веб-служба (WCF Ria), которая взаимодействует с сервером.
У меня есть простой класс (User Service) и метод (GetUsers) в моем проекте DAL со следующим кодом:
LoadOperation<u_WEBUSERS> loadOp = this.userContext.Load(this.userContext.GetU_WEBUSERSQuery());
loadOp.Completed += (sender, args) =>
{
users = new List<UserObj>();
foreach (var v in loadOp.Entities)
{
u_WEBUSERS uweb = v as u_WEBUSERS;
UserObj u = new UserObj();
u.Nome = uweb.nome;
u.Morada = uweb.morada;
users.Add(u);
}
};
return users;
Дело в том, что мой объект users возвращает null. Если я остановлюсь на точке останова, я увижу, что сначала завершается метод, и только после вызывается завершенное событие.
Есть ли способ заставить мой GetUsers () возвращать информацию базы данных?
Может быть, многоуровневая архитектура, которую я использую, не подходит для того, что я хочу ...
Спасибо