linq Abfrage wo int ID zu Listint gehört

8

Ich habe ein Problem mit einer linq-Abfrage. Ich habe das schon vorher benutzt, aber ich kann nicht verstehen, was jetzt falsch sein könnte.

Fehler

  

Die beste überladene Methodenübereinstimmung für   'System.Collections.Generic.List.Contains (int)'   hat einige ungültige Argumente
  Argument '1': Kann nicht von 'int' konvertieren? zu 'int'; bezieht sich auf die Where-Klausel von rTestResults

Code:

%Vor%

Irgendeine Idee was ist los?

Jede Hilfe geschätzt,
Danke

    
Slabo 20.01.2010, 02:55
quelle

3 Antworten

21

Sie können den Operator null-coalescing hier verwenden:

%Vor%     
bendewey 20.01.2010, 02:58
quelle
6

Das liegt daran, dass das ID-Feld NULL-Werte zulässt, während die Elemente in der Auflistung nicht zulässig sind.

Sie haben wahrscheinlich vergessen, es als nicht-null in der Datenbank zu markieren, damit der Designer es auf diese Weise erzeugt.

Beste Sache Markierung in der DB ist not-null und refresh Daten.

Außerdem hat U nicht angegeben, welche LINQ Sie verwenden, vorausgesetzt, Sie linq die DB, ich bin mir nicht sicher, ob die Extensions-Methode Contains in Linq to Sql oder Linq to Entities funktioniert, Sie erhalten möglicherweise eine weitere NotSupportedException, selbst nachdem Sie die obigen Fehler behoben haben.

Verwenden Sie daher entweder zwei Abfragen, die erste, um auf die Datenbank zuzugreifen, und die zweite, um den Wert aus der geladenen Sammlung abzurufen, oder erwägen Sie die Verwendung von 'Enthält ()" Workaround mit Linq zu Entities? .

Und wenn Sie linq-to-Objekte verwenden und Sie sich nicht um den oben genannten Papierkorb kümmern, verwenden Sie einfach Folgendes:

%Vor%     
Shimmy 20.01.2010 02:56
quelle
2

Seit der Ausnahme in System.Collections.Generic.List.Contains(int) kann ich erraten, dass die mDataContext.TestSamplesViews.PlateID Nullable ist.

Wenn Sie einfach eine einfache Korrektur wünschen und / oder PlateID nicht ändern können, damit es nicht mehr nullfähig ist, können Sie zuerst prüfen, ob es einen Wert hat:

%Vor%     
Dynami Le Savard 20.01.2010 03:07
quelle

Tags und Links