【问题标题】:Cross apply in Linq在 Linq 中交叉应用
【发布时间】:2010-09-17 14:03:45
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 当然这是一种方法,或者求助于 DbDataReader(我就是这样做的)
    【解决方案2】:

    试试这个:

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

    【讨论】:

    • 如果链接方法调用,请使用SelectMany,它允许您包含用于指定函数调用和结果形状的 lambda。
    猜你喜欢
    • 2021-07-05
    • 2011-03-06
    • 2017-01-26
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 2022-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多