2009-06-24 8 views

Antwort

2

Die System.Data.Objects.SqlFunctions hat (AFAIK) alle nützlichen T-SQL-Funktionen wie Difference, Soundex, wie etc. Diese Funktionen werden übersetzt in where-Klauseln von Linq2Sql in ihre T-SQL-Äquivalente.

EDIT: Hoppla, das ist 4.0. Das tut mir leid. Zu diesem Zweck können Sie eine benutzerdefinierte Funktion in Ihrer Datenbank erstellen und diese Funktion zu Ihrer DBML-Datei hinzufügen und sie genau wie SqlMethods.Like aufrufen (was genau ich dachte). Here's the MSDN docs on it.

Grundsätzlich erstellen Sie nur eine UDF, die die gleichen Eingaben wie UNTERSCHIED und gibt die gleichen Ergebnisse nimmt. Diese Funktion ruft nur die Methode DIFFERENCE auf. Dann legen Sie das in Ihrer DBML offen und verwenden Ihre Funktion in Ihren Abfragen.

0

Nein, es gibt keine .NET-Methode, die auf das übersetzt.

+0

Ja, da ist. :) –

+0

Ab .NET 3.5 gibt es keinen für LINQ to SQL. Die eine, die du erwähnt hast, spezifiziert zwei Dinge klar: 1. LINQ zu Entitäten. 2. Unterstützt in 4. –

+0

In der Tat. Ich dachte an SqlMethods [XXX], die keinen UNTERSCHIED haben. Zum Glück gibt es einen einfachen Weg, um zu zeigen, was er braucht. –

0

.NET nicht über Soundex Funktionalität eingebaut. Siehe this article zur Implementierung von Soundex in C# einschließlich des Algorithmus, den die T-SQL-Funktion DIFFERENCE() verwendet.

Verwandte Themen