2009-02-01 8 views
7

W jaki sposób następujące wyrażenie sql przetłumaczą na kwerendę linq?Jak wywołać UDF w zapytaniu linq do sql?

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

UDF fGetText jest dość znaczna i stosowany w podstawie kodu, a więc musi być zamknięty (jak UDF lub w inny sposób, może Expression Linq).

Dodatkowe, okrągłe wycieczki do serwera bazy danych nie są opcją. Powinno być tylko jedno zapytanie, pobierające 3 pola.

Z góry dziękujemy za pomoc. Jest to bardzo doceniane.

Odpowiedz

3

Oto artykuł MSDN:

How to: Call User-Defined Functions Inline (LINQ to SQL)

Uwaga od tej samej strony:

Chociaż można wywoływać funkcje zdefiniowane przez użytkownika funkcje inline, które są zawarte w zapytanie, którego wykonanie jest odroczone, nie zostanie wykonane, dopóki nie zostanie wykonane zapytanie . Aby uzyskać więcej informacji na temat , zobacz Wprowadzenie do zapytań LINQ .

Po wywołaniu ta sama funkcja poza zapytania LINQ to SQL tworzy proste zapytanie z wywołania metody ekspresji

również przyjrzeć się tej 13 min screencast.

2

Ty można dodać UDF do pliku LINQ do SQL DBML, tak jak dodajesz tabele i sprocs.

Następnie stają się one wykonywalnymi metodami w DataContext.

Google ma wiele artykułów, takich jak this.