2017-05-11 2 views
-9

Hier verwende ich where-Klausel für ganze Zahlen. Ist es möglich ? Da bekomme ich nicht das gewünschte Ergebnis.In C# wo In-Klausel für Ganzzahlen funktioniert?

Hier Phase ist eine ganze Zahl. ich eine Fehlermeldung „Object-Objekt“ immer, wenn ich die ganze Web-Anwendung laufen

+0

Ja, es ist möglich, ganze Zahlen zu verwenden. Alles, was Sie tun müssen, ist sicherzustellen, dass Ihr Ausdruck im Inneren einen booleschen Wert zurückgibt. –

+6

Nun, was * bekommst du? Es gibt nicht genug Informationen hier, um Ihnen zu helfen. –

+1

Zwei Möglichkeiten, entweder Ihre 'ProjectDetails' enthalten keine übereinstimmende Ganzzahl für' Phase' oder sie enthält mehr als eine Übereinstimmung. – helrich

Antwort

-2

Wenn _ProjectContext.ProjectDetails mehr als ein Phasenelement hat, wird eine Ausnahme ausgelöst.

Aber wenn es kein passendes Element ist, dann wird es zurückgeben 0

var numbers = new[] {1 ,2, 3}; 

numbers.Where(x => x == 6).SingleOrDefault(); // returns 0 

weil

default(int) == 0 
+0

Im OP-Fall wird 'null' zurückgegeben, da 'ProjectDetail' ein Referenztyp ist. – juharr

+0

ja :) du hast Recht –

-2

Es sollte funktionieren, nur debuge und prüfen Sie entweder die int Datensatz in db existieren oder nicht, versuchen Sie jedoch mit

.FirstOrDefault() anstelle von .SingleOrDefault(), da dies zu einem außergewöhnlichen Fehler führt, wenn mehrere Ergebnisse vorhanden sind;

+0

Lassen Sie mich versuchen – beginner

+1

.FirstOrDefault() wird auch 0 zurückgeben, wenn die Sammlung keine passenden Elemente hat –

+1

Versuchen Sie '.Any' wie von zwei verschiedenen Personen vorgeschlagen und es wird weniger Code. – SQLMason

Verwandte Themen