LINQ to Entities: Vergleiche unter Berücksichtigung der Groß-/Kleinschreibung
LINQ to Entities-Abfragen erben häufig die Groß-/Kleinschreibung von SQL Server. In diesem Leitfaden werden Methoden zum Erzwingen von Vergleichen unter Beachtung der Groß-/Kleinschreibung in LINQ to Entities-Abfragen untersucht.
Verstehen des Verhaltens, bei dem die Groß-/Kleinschreibung nicht beachtet wird
LINQ to Entities übersetzt Abfragen in SQL. Bei der Standardsortierung von SQL Server wird die Groß-/Kleinschreibung nicht beachtet, was bedeutet, dass „Name == ‚ThingamaBob‘“ als Übereinstimmung ohne Berücksichtigung der Groß-/Kleinschreibung behandelt wird.
Lösung auf Datenbankebene (serverseitig)
Der effizienteste Ansatz besteht darin, die Sortierung der Datenbankspalte so zu ändern, dass die Groß-/Kleinschreibung beachtet wird. Verwenden Sie eine SQL-Anweisung wie diese:
ALTER TABLE Thingies ALTER COLUMN Name VARCHAR(25) COLLATE Latin1_General_CS_AS
Diese Änderung stellt die Groß-/Kleinschreibung bei Vergleichen sowohl in SQL- als auch in LINQ to Entities-Abfragen sicher.
Problemumgehung auf Anwendungsebene (clientseitig)
Wenn Datenbankänderungen unpraktisch sind, kann eine clientseitige Lösung implementiert werden, die jedoch weniger leistungsfähig ist:
Thingies.Where(t => t.Name == "ThingamaBob") .AsEnumerable() .First(t => t.Name == "ThingamaBob");
Dieser Ansatz ruft die Daten an den Client ab und führt den Vergleich unter Beachtung der Groß- und Kleinschreibung im Speicher durch.
Wichtige Überlegungen
ObjectQuery.ToTraceString()
, um das generierte SQL zu untersuchen und die verwendete Sortierung zu überprüfen.Das obige ist der detaillierte Inhalt vonWie führt man in LINQ to Entities Vergleiche unter Berücksichtigung der Groß- und Kleinschreibung durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!