Перекрестное применение в Linq

Можно ли использовать SQL Server 2008 CROSS APPLY с LINQ-2-SQL?

Пример SQL:

select d.dateCol, tvf.descr, tvf.value
from dateTable d
cross apply tvFunction(d.dt, 'anotherParam') tvf
where d.category='someCat'

CROSS APPLY позволяет использовать значения из таблицы (в примере dateTable) в качестве параметров функции tablevalue. Это очень полезно, если вам нужно выполнить сложный расчет (инкапсулированный в функцию табличного значения) для диапазона входных данных.


person vzczc    schedule 16.10.2008    source источник


Ответы (2)


Единственный способ использовать это - заключить приведенный выше код в хранимую процедуру и заключить его в LINQ to SQL.

person DamienG    schedule 17.10.2008
comment
Конечно, это способ сделать это или прибегнуть к DbDataReader (что я и сделал) - person vzczc; 18.10.2008

Попробуй это:

from d in dateTable
from tvf in tvFunction(d.dt, 'anotherProgram')
where d.category = 'someCat'
person Djordje    schedule 07.04.2011
comment
При объединении вызовов методов используйте SelectMany, что позволяет включать лямбда-выражения для указания как вызова функции, так и формы результата. - person Zarepheth; 31.08.2016