Dopo aver letto this domanda, Ho bisogno di chiarire alcune cose.IEnumerable <T> e IQueryable <T> chiarimenti?
IQueryable<Customer> custs = from c in db.Customers
where c.City == "<City>"
select c;
IEnumerable<Customer> custs = from c in db.Customers
where c.City == "<City>"
select c;
Domande:
1) è ok per dire che: nella prima query SQLServer è in esecuzione l'intera operazione, compreso dove clausola e ritorno SOLO le righe rilevanti - mentre il secondo fa SELECT *
... e restituisce tutte le righe in C# e THEN filtri?
2) Che dire se ho una raccolta solo - in memoria. (var lstMyPerson = new List<MyPerson>()
)
IQueryable<MyPerson> lst = from c in lstMyPerson
where c.City == "<City>"
select c;
vs
IEnumerable<MyPerson> custs = from c in lstMyPerson
where c.City == "<City>"
select c;
quale sarà la differenza di esecuzione ora?
Dai un'occhiata a questo argomento pertinente: http://stackoverflow.com/questions/252785/quello-è-differenza-dall'interno-di-questionatore-and-ienumerablet. E inoltre, hai ragione nel presupposto in # 1. Non sicuro al 100% di # 2, quindi lo lascerò a un altro. – blizz
@blizz l'ho già letto. tutte le risposte ci sono da un libro POV. niente rispondendo alla mia domanda lì ....: (... mal sia ** felice ** per vedere quale linea risponde alla mia domanda –