2016-07-26 21 views
4

Nach der Ausführung take(n) linq-Methode auf IQueriable Daten (initiale Anzahl m), Methode Count() gibt immer noch m Wert zurück."Count()" nach "Take()" auf "IQueryable" gibt falsches Ergebnis zurück?

Ist die Ausführung ToList() Befehl die einzige Option, um tatsächliche Anzahl von IQueryable zu erhalten?

var data = service.Get();//100 records 
var data2 = data.Take(10); 

var count = data2.count(); //result 100 - wrong 
var count2 = data2.ToList().Count; // result 10 - correct 
+2

Können Sie Ihren Code zeigen? – Shyju

+0

@Shyju aktualisiert. –

+0

Also, wo ist dein Code? –

Antwort

4

Sie müssen ToList() für diesen Fall verwenden oder eine alternative Lösung finden, oder das Ergebnis des Grafen Kappe() selbst (seit dem richtigen Wert kann niemals als der Wert größer angegeben Take()) .

Bekannte Fehler in NHibernate: https://nhibernate.jira.com/browse/NH-2477

Verwandte Themen