2009-03-19 6 views
0

J'ai un code C# pour remplir une liste déroulante dans Silverlight qui fonctionne bien sauf s'il y a des doublons. Je pense que parce que IEnumerable<Insurance.Claims> est une collection, il filtre les doublons. Comment puis-je coder ma requête LINQ pour accepter les doublons?ADO.NET Data Services, LINQ

Mes données de l'échantillon ressemble:

Code => CodeName
FGI             terrain de l'initiative générale
SRI             Initiative sur les ressources statique
JFI             Initiative conjointe sur le terrain - Ceci est "écrasé" dans les résultats
JFI             ami Joint Initiative

IEnumerable<Insurance.Claims> results; 

// ADO.NET Data Service 
var claim = (from c in DataEntities.Claims.Expand("Claimants").Expand("Policies") 
      where c.Claim_Number == claimNumber 
      select c); 

DataServiceQuery<Insurance.Claims> dataServiceQuery = 
    claim as DataServiceQuery<Insurance.Claims>; 

dataServiceQuery.BeginExecute((asyncResult) => 
{ 
    results = dataServiceQuery.EndExecute(asyncResult); 

    if (results == null) 
    { 
     // Error 
    } 
    else 
    { 
     // Code to populate Silverlight form 
    } 
}); 
+0

IEnumerable est juste une interface. Ça ne fait rien. En particulier, il ne filtre pas les doublons. –

Répondre

0

(Je ne sais pas si vous avez encore du mal avec cela, mais quand même ...)

Je suis assez sûr que ce n'est pas l'interface IEnumerable mais la liste déroulante qui provoque ce comportement. Le code est utilisé comme clé, et donc évidemment chaque fois que le même code est rencontré, l'élément est en cours d'écrasement.

Je ne pense pas que vous pouvez surcharger ceci à moins que vous ne changiez le code, ou n'utilisiez un autre identificateur comme champ clé dans la liste déroulante.

0

Vous pouvez ajouter un bloc try-catch autour de dataServiceQuery.EndExecute(asyncResult) pour gérer correctement les erreurs.

+0

Cela devrait être un commentaire pas une réponse. –

Questions connexes