Ich habe eine Linq zu SQL-Abfrage, die (meiner Meinung nach) sehr seltsam verhält, wenn ich nach Null-Werten überprüfen.Linq zu SQL-Prüfung auf Null Fremdheit
Es gibt einen Datensatz in der DB wie von der letzten Linq gezeigt, aber warum zeigen die ersten beiden Abfragen den Datensatz nicht?
//Check
(record.SomeID == null ? "Yes" : "No"); //This prints Yes
//LINQ
var q = (from t in mySQLTable
where t.PKID == record.PKID &&
t.SomeID == record.SomeID
select t).FirstOrDefault();
//This prints nothing. I.e. no records found
var q2 = (from t in mySQLTable
where t.PKID == record.PKID &&
t.SomeID == (record.SomeID == null ? null : record.SomeID)
select t).FirstOrDefault();
//This also prints nothing. I.e. no records found
var q3 = (from t in mySQLTable
where t.PKID == record.PKID &&
t.SomeID == null
select t).FirstOrDefault();
//This prints 1 record
einfach "null = null" bewerten ist immer falsch. – Rumpelstinsk
@Rumpelstinsk Sind Sie sicher? Versuchen Sie es :) – user3185569
Führen Sie Profiler und vergleichen Sie Ergebnis SQLs, ich denke, Sie werden verstehen, was schief geht – Nigrimmist