У меня есть две хранимые процедуры. Один (test_proc_outside) выполняет вызов второго (test_proc_inside).LINQ to SQL - Хранимые вложенные процедуры
Когда я создаю визуальный файл LINQ to SQL .dbml визуально, перетаскивая обработанный файл test_proc_outside, сгенерированный класс (test_proc_outsideResult) фактически содержит моделирование для набора результатов внутреннего proc (test_proc_inside).
Вот код для внешней хранимой процедуры (test_proc_outside):
CREATE PROCEDURE [dbo].[test_proc_outside]
@test1 int = 1,
@test2 int = 2,
@test3 int = 3
AS НАЧАТЬ - SET NOCOUNT ON добавляется для предотвращения дополнительных наборов результатов из - мешая ЗЕЬЕСТ. SET NOCOUNT ON;
-- The result of this proc call gets modelled into DBML:
EXEC dbo.test_proc_inside @test1, @test2
-- This SELECT statement does NOT get modelled into DBML:
SELECT @test1 AS Test1,
@test2 AS Test2,
@test3 AS Test3
END GO
Вот код внутри хранимая процедура (test_proc_inside):
CREATE PROCEDURE [dbo].[test_proc_inside]
-- Add the parameters for the stored procedure here
@test1 int = 1,
@test2 int = 2
AS НАЧАТЬ - SET NOCOUNT ON добавляется для предотвращения дополнительных наборов результатов из - вмешательство в инструкции SELECT. SET NOCOUNT ON;
-- This is the result set that gets modelled by the DBML file:
SELECT @test1 AS Test1_Inside,
@test2 AS Test2_Inside
КОНЕЦ ГО
Похоже, что поколение DBML выглядит для самого первого результирующего набора в хранимой процедуре (или вложенной хранимые процедуры) и выкладывает модель для этого.
Если я вместо этого вменяю вызов proc в функцию, я получаю желаемую модель (test_proc_outside).
Есть ли параметр конфигурации, чтобы сообщить DBML-файлу о создании класса для набора результатов во внешнем proc (test_proc_outside) и не беспокоиться о внутренних результатах test_proc_inside?
Спасибо заранее,
Craig