在Linq交叉申请

时间:2008-10-16 16:42:31

标签: sql sql-server linq linq-to-sql sql-server-2008

是否可以将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函数的参数。如果您需要对一系列输入执行复杂计算(封装在表值函数中),这非常有用。

2 个答案:

答案 0 :(得分:5)

使用它的唯一方法是将上面的代码包装在一个存储过程中,并用LINQ to SQL包装它。

答案 1 :(得分:2)

试试这个:

from d in dateTable
from tvf in tvFunction(d.dt, 'anotherProgram')
where d.category = 'someCat'