【问题标题】:Connecting a DomainContext and loading data manually in Silverlight 4 RC application在 Silverlight 4 RC 应用程序中连接 DomainContext 并手动加载数据
【发布时间】:2010-04-30 00:17:01
【问题描述】:

我是 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;

【问题讨论】:

    标签: silverlight silverlight-4.0 wcf


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多