2010-11-11 5 views
2

Je veux obtenir le nombre d'un ensemble en fonction de différentes conditions:EF multiple global en simple requête

var invoices = new AccountingEntities().Transactions 
var c1 = invoices.Count(i=>i.Type = 0); 
var c2 = invoices.Count(i=>i.Type = 1); 
var c3 = invoices.Count(i=>i.Type = 2); 

Comment il est possible d'appeler les trois requêtes dans une base de données aller-retour pour augmenter les performances?

Répondre

7

Bien sûr, juste envelopper vos trois chefs d'accusation dans un POCO ou type anonyme:

using (var invoices = new AccountingEntities()) 
{ 
    var c = (from i in invoices.Transactions 
      select new 
      { 
       c1 = invoices.Count(i=>i.Type = 0), 
       c2 = invoices.Count(i=>i.Type = 1), 
       c3 = invoices.Count(i=>i.Type = 2) 
      }).Single();   
} 

Aussi, jetez votre contexte, comme je le montre.