答案很简单。数据在加载时立即被查询。虽然有些应用程序将按程序处理此问题,但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...
}