LINQ:调用存储过程并使用IQueryable加入其结果

时间:2010-07-08 22:31:49

标签: c# linq datacontext iqueryable stored-procedures

我有:

  • 一个存储过程,用于检索围绕另一个邮政编码的半径中的邮政编码

  • 包含联系人的表格

我通过IQueryable接口获取联系人,我已经使用各种扩展方法扩展了这些接口,以按年龄等过滤结果。

我遇到的麻烦是添加一个IQueryable扩展方法,它调用上面描述的存储过程(半径为邮政编码),然后将这些邮政编码与我的IQueryable联系人列表连接起来。

知道怎么做吗?

1 个答案:

答案 0 :(得分:0)

要做到这一点,你需要将sp换成udf。通常可以通过简单地将(现有的)sp转发到(新的)udf,即 来影响任何现有代码(即调用SP)。

CREATE PROC foo @blah int
AS
BEGIN
    SELECT * FROM dbo.foo_udf(@blah)
END

LINQ-to-SQL支持针对udfs的可组合性,但不支持SP,因此您应该能够在查询中加入UDF(通过yourContext.UdfName(...))。