Как вызвать UDF в запросе linq to sql? - PullRequest
7 голосов
/ 01 февраля 2009

Как следующий оператор sql перевести на запрос linq?

select ID, 
       Price, 
       dbo.fGetText(DescriptionID, defaultLanguage, currentUserLanguage) 
from Products

UDF fGetText довольно существенен и используется во всей кодовой базе, поэтому его необходимо инкапсулировать (как UDF или иным образом, возможно, в выражение Linq).

Дополнительные обходы на сервер базы данных не возможны. Должен быть только один запрос, получающий 3 поля.

Большое спасибо заранее за вашу помощь. С благодарностью.

Ответы [ 2 ]

3 голосов
/ 01 февраля 2009

Вот статья MSDN:

Как: вызывать пользовательские функции встроенными (LINQ to SQL)

Записка с той же страницы:

Хотя вы можете позвонить определенным пользователем встроенные функции, функции, которые включены в запрос, выполнение которого отложенные не выполняются до запрос выполнен. Для большего информация, см. Введение в LINQ Запросы.

Когда вы вызываете ту же функцию вне запроса LINQ to SQL создает простой запрос из вызова метода выражение

Кроме того, посмотрите на этот 13-минутный скринкаст.

2 голосов
/ 01 февраля 2009

Вы можете добавлять UDF в файл LINQ to SQL DBML так же, как добавляете таблицы и sprocs.

Затем они становятся исполняемыми методами в DataContext.

У Google много статей, например this .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...