LINQ: вызов хранимой процедуры и объединение ее результатов с IQueryable - PullRequest
1 голос
/ 09 июля 2010

у меня есть:

  • хранимая процедура, которая извлекает почтовые индексы в радиусе вокруг другого почтового индекса

  • стол с контактами

Я получаю контакты через интерфейс IQueryable, который я расширил различными методами расширения для фильтрации результатов по возрасту и т. Д.

У меня проблемы с добавлением метода расширения IQueryable, который вызывает хранимую процедуру, описанную выше (почтовые индексы в радиусе), а затем соединяет эти почтовые индексы с моим списком контактов IQueryable.

Есть идеи, как это сделать?

1 Ответ

0 голосов
/ 09 июля 2010

Для этого вам нужно поменять местами sp для udf.Это обычно возможно без воздействия на любой существующий код (который вызывает SP), просто перенаправив (существующий) sp в (новый) udf, то есть

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

LINQ-to-SQL поддерживает возможность комбинирования с udf, но не с SP, поэтому вы сможете присоединиться к UDF (через yourContext.UdfName(...)) в своем запросе.

...