Подключение DomainContext и загрузка данных вручную в приложении Silverlight 4 RC - PullRequest
1 голос
/ 20 апреля 2010

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

//Global
public UMSDomainContext _umsDomainContext = new UMSDomainContext();

//In the Initialization portion
_umsDomainContext.Load(_umsDomainContext.GetUMOptionsQuery());
//Queries
 var name = from n in _umsDomainContext.UMOptions
                              select n.DistrictName;

                var street1 = from c in _umsDomainContext.UMOptions
                              select c.Address1;

                var street2 = from c in _umsDomainContext.UMOptions
                              select c.Address2;

                var city = from c in _umsDomainContext.UMOptions
                              select c.City;

                var zip = from c in _umsDomainContext.UMOptions
                              select c.Zip;

Я звоню по текущим дополнительным ссылкам.

using System.Linq;
using System.ServiceModel.DomainServices.Client;
using System.ComponentModel.DataAnnotations;
using MTT.Web;

1 Ответ

2 голосов
/ 21 апреля 2010

Ответ очень прост. Данные, когда они загружались, мгновенно запрашивались. Хотя некоторые приложения будут обрабатывать это процедурно, похоже, Silverlight не дождался загрузки данных, прежде чем двигаться дальше. Поэтому я сделал следующее:

public void LoadCustomerInformation()
{
     //Load the Query
     var loadOperation = _umsDomainContext.Load<UMOption>(_umsDomainContext.GetUMOptionsQuery());
     //Create a event handler to run after the data is fully loaded.
     loadOperation.Completed += new EventHandler(loadOperation_Completed);
}

void loadOperation_Completed(object sender, EventArgs e)
        {
            var name = (from n in _umsDomainContext.UMOptions
                       select n.DistrictName).First();

            var street1 = from c in _umsDomainContext.UMOptions
                          select c.Address1;

            var street2 = from c in _umsDomainContext.UMOptions
                          select c.Address2;

            var city = from c in _umsDomainContext.UMOptions
                       select c.City;

            var zip = from c in _umsDomainContext.UMOptions
                      select c.Zip;

            //Other code to work with the data, etc...
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...