2015-10-29 2 views
0

en essayant de joindre deux ensembles de données en utilisant linq in vb. Mon premier ensemble de données contient une liste de tous les comptes, et mon deuxième ensemble de données contient tous les comptes avec des soldes. Je veux faire une jointure qui me donne tous les comptes, y compris ceux avec des soldes.Linq outer join requête

Voici mon code

Dim results = From a In accounts 
         Group Join ba In balanceAccounts On c.AccountId Equals a.AccountId Into Group 
         From p In Group.DefaultIfEmpty() 
         Select New With {.Name = a.Name, .Balance = ba.Balance 


                   } 

Répondre

0

Sans rejoindre:

balanceAccounts 
    .Select(x => new Result() { Name = x.Name, Balance = x.Balance }) 
    .Union(accounts.Select(x => new Result() { Name = x.Name, Balance = x.Balance })) 
    .GroupBy(x => x.Name) 
    .Select(x => x.First()) 
    .ToList(); 

Désolé pour le C# ;-)

0

Dans votre code, modifiez cette

From p In Group.DefaultIfEmpty() 

à

From ba In Group.DefaultIfEmpty() 

ou .Balance = ba.Balance à .Balance = p.Balance