2010-04-19 2 views
1

Je suis nouveau à WCF & et j'ai ce qui me semble être un problème de base. J'ai plusieurs fois dans mon application Silverlight 4 RC traîné et a chuté de ma fenêtre de source de données à mon formulaire et j'ai renvoyé des informations de la base de données. Cependant, j'ai besoin d'interroger la base de données pour d'autres informations (Création d'un rapport) Lorsque j'essaie d'utiliser le code suivant, je ne reçois aucune erreur, mais je ne reçois aucune information du service.Connexion d'un DomainContext et chargement manuel des données dans l'application 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; 

Im appelant les références supplémentaires actuelles.

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

Répondre

2

La réponse est très simple. Les données lors du chargement ont été immédiatement interrogées. Bien que certaines applications traitent cette procédure, il semble que Silverlight n'a pas attendu le chargement des données avant de passer à autre chose. J'ai donc fait ce qui suit:

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... 
     }