Siehe auch Unterschiede zwischen LINQ to Objects und LINQ zu SQL-Abfragen
Wir verwenden einige Abfragen über unsere Datenbank und unsere in Speicherobjekten .
Was ist der beste Weg, um eine insensitive Zeichenkette mit linq-to-sql zu vergleichen, so dass?
Verwenden Sie
%Vor%bringt zumindest die gleichen Ergebnisse, aber es wird, soweit ich das beurteilen kann, nicht auf dem SQL-Server verarbeitet, daher kann es viel langsamer sein als
%Vor%Die Groß- / Kleinschreibung in Ihrer SQL-Datenbank wird durch die Sortierungseinstellung bestimmt. Standardmäßig denke ich, dass die meisten Datenbanken nicht zwischen Groß- und Kleinschreibung unterscheiden. Daher sollten Sie überprüfen, ob Sie die Groß- und Kleinschreibung explizit berücksichtigen müssen.
In einer Sortierungseinstellung von SQL_Latin1_General_CP1_CI_AS
- CI steht für Groß- / Kleinschreibung und AS steht für akzentsensitiv.
Leider ignoriert Linq-to-Sql die zusätzlichen Parameter von String.Compare()
, so dass Sie die Groß- / Kleinschreibung für den Vergleich nicht explizit festlegen können. Es wird jedoch mit LINQ zu Objekten funktionieren.
Wenn Sie eine Sortierung verwenden, bei der die Groß- und Kleinschreibung berücksichtigt wird, können Sie mit SqlMethods.Like(field, "string")
eine LIKE-Abfrage verwenden, bei der die Groß- / Kleinschreibung nicht berücksichtigt wird. Dies wird jedoch nicht in Objekte umgewandelt.
Hier sind die Liste der unterstützten Zeichenfolgenoperationen in LINQ to SQL, die offensichtlich in LINQ zu Objekten funktionieren würden: Ссылка
Ich persönlich habe nicht jede für die Leistung bewertet, aber ToLower und ToUpper werden in LINQ to SQL nicht unterstützt, daher scheint Compare ein guter Kandidat zu sein. Sie können das übersetzte SQL mithilfe eines Tools wie LINQPad untersuchen, das über eine kostenlose Version verfügt und eine Abfrage in SQL-Datenbank übersetzt, um zu sehen, wie es mit der Datenbank ausgeführt wird.
LINQ to Objects ist wahrscheinlich auch anders, also ist das, was gut für eins ist, vielleicht nicht gut für das andere ...
Tags und Links .net linq linq-to-sql linq-to-objects