Nicht-statische Methode erfordert ein Ziel?

8

Ich habe diesen Fehler nie zuvor gesehen und es ist sehr verwirrend, ich versuche im Wesentlichen etwas zu tun, wo ich sage, dass ich alle Orte finde (wird nur einen zurückgeben), die dem übergebenen Ortsnamen und dem Typ entsprechen:

%Vor%

Es gibt wahrscheinlich einen besseren Weg, um zu tun, was ich will auf einen Schlag, aber im Wesentlichen bekomme ich den Namen aus einer Spalte (das kommt aus einer CSV-Datei), und dann sagen Sie, holen Sie mir diese Ortsinformationen. Danach sage ich jetzt ok, dass ich all den Jazz habe, hol mir einen Ort mit diesem Namen und seinem Typ.

Aber ich bekomme den Fehler:

Nicht-statische Methode erfordert ein Ziel

Die oberste Methode, auf der dieser Code ausgeführt wird, ist:

%Vor%

Im Wesentlichen ist es nur eine Konsolen-App. Also, was ist los?

  • db ist die Kontextklasse, dies sollte offensichtlich sein.
  • Spalten ziehe ich die Daten aus der CSV-Datei, in diesem Fall Spalten [40] wäre so etwas wie "New York"

Vollständige Fehlermeldung aus der Stapelüberwachung: {"Nicht statische Methode erfordert ein Ziel."}

Hinweis: Die als "mögliche Antwort" angegebene Frage hilft in diesem Fall nicht, da die Hauptmethode, in der ich diesen Code ausführe, statisch ist.

Bei weiterer Untersuchung fand ich, dass Name und Typ null waren, also habe ich den folgenden Fix genommen:

%Vor%

Leider bekomme ich immer noch den Fehler bei: Location loc = db.Locations.Where(l => l.name == name && l.type == type.type).FirstOrDefault();

    
TheWebs 15.05.2013, 17:00
quelle

3 Antworten

18

Das ist mir heute passiert. Komm, um es herauszufinden, ich habe das gemacht:

%Vor%

wo course.Club über EF von meiner Datenbank geladen wurde. Zuerst dachte ich, dass mein Problem die Erweiterung FormatPhoneNumber war, aber dann stellte ich fest, dass das Entfernen des course.Club.ID das Problem behob:

%Vor%

Vermeiden Sie daher, in nachfolgenden LINQ-Abfragen Werte zu verwenden, die aus Lazy-Loaded-Objekten gewonnen wurden - weisen Sie sie lokalen Variablen zu und verwenden Sie diese Variablen dann in Ihrer Abfrage.

    
Derreck Dean 15.10.2013 17:55
quelle
4

Stellt sich heraus, dass, weil Name und Typ Null sein kann, Typ außerhalb der if-Anweisung angegeben werden muss und ich daher prüfen muss, ob Typ und Name vor dem Fortfahren Null sind:

%Vor%     
TheWebs 15.05.2013 17:19
quelle
0

Es ist eine Tatsache, dass das Problem auf das Null-Objekt "type" zurückzuführen ist. Ich würde diesen Weg lösen:

%Vor%     
mikilion 01.12.2017 09:55
quelle

Tags und Links