Вопрос по linq – У Linq есть «Разница»?

1

У меня есть SQL-оператор, который использует Difference = & gt; http://msdn.microsoft.com/en-us/library/ms188753.aspx

Я делаю это в сохраненном процессе, но я хочу перейти на LINQ. Есть ли разница в разнице в LINQ?

Ex: WHERE (DIFFERENCE(C.LastName, ''' + @name + ''') >= 4

Спасибо

Ваш Ответ

3   ответа
0

.. УвидетьЭта статья о том, как реализовать Soundex в C #, включая алгоритм, который использует функция T-SQL DIFFERENCE ().

0

Нет, .NET-метода, который переводил бы на это, нет.

Да, есть. :)
В самом деле. Думал о SqlMethods. [XXX], который не имеет различий. К счастью, есть простой способ показать, что ему нужно.
Начиная с .NET 3.5 не существует ни одного для LINQ to SQL. Тот, который вы упомянули, четко определяет две вещи: 1. LINQ to Entities. 2. Поддерживается в 4.
2

The System.Data.Objects.SqlFunctions  такие как Difference, Soundex, Like и т. д. Эти функции преобразуются в предложениях с помощью Linq2Sql в их эквиваленты T-SQL.

EDIT: К сожалению, это 4.0. Извини за это. Тем не менее, для этого вы можете создать пользовательскую функцию в вашей базе данных, добавить эту функцию в ваш файл DBML и вызвать ее так же, как и SqlMethods.Like (о которой я думал).Вот документы MSDN на него.

По сути, вы просто создаете UDF, который принимает те же входные данные, что и DIFFERENCE, и возвращает те же результаты. Эта функция не делает ничего, кроме вызова метода DIFFERENCE. Затем вы выставляете это в своем DBML и используете свою функцию в своих запросах.

Похожие вопросы