2009-11-03 1 views
2

Je utilise un service WCF et dans la couche d'accès aux données-je utiliser ce code:Comment ce code d'accès aux données peut-il perdre des données?

public BindingList getPeople(s) 
{ 
    IQueryable<Personal> query; 
    EntidadesDataContext dc = GetDC(); 
    DataLoadOptions loadOptions = new DataLoadOptions(); 
    loadOptions.LoadWith<People>(pp=> pp.PeopleDepartment); 
    loadOptions.LoadWith<PeopleDepartment>(pd=> pd.Department); // is what I lose in the UI 
    dc.LoadOptions = loadOptions; 
    query = from people in dc.People select people; 

    return QueryToBindingList(query); 
} 

ce code renvoie les données complètes et exactement comme je veux, je l'appelle du service et l'ajouter à un BindingList

peopleBindingList = currentConnection.ServiceClient.People_GetPeople(); 

à peopleBindingList je perds les valeurs de service .... par exemple ...

peopleBindingList.Select(pp=>pp.PeopleDepartament.First().Departament) ... returns Null 

Je vérifie d'abord tha t ses données pour revenir ...

+0

Cela n'a évidemment rien à voir avec WCF. Quelle technologie d'accès aux données utilisez-vous? Linq aux entités? Linq à SQL? –

+0

J'utilise Linq à SQL – ae2

+1

Je suis désolé .... J'utilise Linq pour Entités ... – ae2

Répondre

0

alors je l'appelle du service

Je parie que vous avez une propriété qui ne fait pas dans la limite de service! Vérifiez la sérialisation des types impliqués. Si vous utilisez le sérialiseur DataContract, assurez-vous que toutes les propriétés que vous souhaitez sont décorées avec des attributs DataMember.

Questions connexes