Ich bin neu in Dapper, so kann ich etwas offensichtlich fehlen, aber ich verstehe nicht, warum diese Abfrage null
zurückgibt, obwohl der Datensatz in der Tabelle vorhanden ist.Überprüfen, ob Datensatz existiert mit Dapper ORM
queryResult = db.Query<dynamic>(@"SELECT Id FROM Customer WHERE CustomerId = @CustomerId",
new { CustomerId = theCustomerId }).FirstOrDefault();
Ich bin Überprüfung, ob der Datensatz vorhanden ist, und in diesem Fall, um zu sehen null
es tut, noch queryresult ist immer. Der @CustomerId
Parameter ist ein string
, dass ich genau bin passend ..
Wenn ich die SQL in SQL Server ausführen, wird der Datensatz kein Problem bringt ...
SELECT Id FROM Customer WHERE CustomerId = 'abc123'
wo abc123
die CustomerId
Ich bin ein wenig verwirrt in Bezug auf Ihre Antwort. Wenn der Datensatz existiert, würde ich erwarten, dass "FirstOrDefault" den Datensatz und Null zurückgibt, wenn er nicht existiert. Ich sehe nicht, wie ich die Rückkehr von Null erzwinge. – webworm
Als Experiment können Sie bitte 'FirstorDefault()' entfernen und stattdessen überprüfen, ob 'Any()' Call True zurückgibt, wenn es dann richtig ist, wenn Nicht dann bin ich richtig. Die Idee bleibt adrett, erzwingt keine Null in ihrem Ergebnis, sie wird höchstens eine leere Sammlung geben –
Ich tat, wie Sie vorgeschlagen haben, wenn "queryResult" ausgeführt wird, wird nun "false". Ich denke, ich sehe was du sagst. 'FirstOrDefault' gibt eine leere Sammlung statt" null "zurück. Dennoch hätte ich erwartet, dass 'queryResult'' true' zurückgibt, wenn der Datensatz existiert. – webworm