Heim >Backend-Entwicklung >C++ >Wie kann ich in LINQ to Entities Vergleiche unter Berücksichtigung der Groß-/Kleinschreibung durchführen?

Wie kann ich in LINQ to Entities Vergleiche unter Berücksichtigung der Groß-/Kleinschreibung durchführen?

Barbara Streisand
Barbara StreisandOriginal
2025-01-21 17:36:09244Durchsuche

How Can I Perform Case-Sensitive Comparisons in LINQ to Entities?

Vergleich ohne Berücksichtigung der Groß- und Kleinschreibung in LINQ to Entities

Im Gegensatz zu LINQ to Objects unterstützt LINQ to Entities Vergleiche unter Beachtung der Groß-/Kleinschreibung nicht direkt. Dies liegt daran, dass LINQ to Entities Lambda-Ausdrücke in SQL-Anweisungen umwandelt, die letztendlich von der Datenbank (z. B. SQL Server) ausgeführt werden. Standardmäßig verwendet SQL Server eine Sortierung ohne Berücksichtigung der Groß-/Kleinschreibung, was bedeutet, dass die folgende Abfrage unabhängig von der Groß-/Kleinschreibung immer eine Übereinstimmung zurückgibt:

<code>context.Thingies.First(t => t.Name == "ThingamaBob");</code>

Serverseitige Lösung

Um den Vergleich zwischen Groß- und Kleinschreibung in LINQ to Entities zu implementieren, muss die Datenbanksortierung der relevanten Spalten geändert werden. Beispielsweise ändert die folgende SQL-Anweisung die Sortierung der Spalte „Name“ in der Tabelle „Thingies“ so, dass die Groß-/Kleinschreibung beachtet wird:

<code>ALTER TABLE Thingies ALTER COLUMN Name VARCHAR(25) COLLATE Latin1_General_CS_AS;</code>

Kundenlösung

Obwohl nicht ideal, gibt es eine clientseitige Problemumgehung, die sowohl LINQ to Entities als auch LINQ to Objects nutzt:

<code>var result = context.Thingies.Where(t => t.Name == "ThingamaBob")
                   .AsEnumerable()
                   .First(t => t.Name == "ThingamaBob");</code>

Bei diesem Ansatz wandelt AsEnumerable() die Abfrage in eine speicherinterne Aufzählung um, sodass Sie mit Where() einen sekundären Vergleich unter Berücksichtigung der Groß- und Kleinschreibung durchführen können. Diese Problemumgehung führt jedoch zu zusätzlichen Abfragen der Datenbank.

Das obige ist der detaillierte Inhalt vonWie kann ich in LINQ to Entities Vergleiche unter Berücksichtigung der Groß-/Kleinschreibung durchführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn