我有:
一个存储过程,用于检索围绕另一个邮政编码的半径中的邮政编码
包含联系人的表格
我通过IQueryable接口获取联系人,我已经使用各种扩展方法扩展了这些接口,以按年龄等过滤结果。
我遇到的麻烦是添加一个IQueryable扩展方法,它调用上面描述的存储过程(半径为邮政编码),然后将这些邮政编码与我的IQueryable联系人列表连接起来。
知道怎么做吗?
答案 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(...)
)。