2つのストアドプロシージャがあります。 1つ(test_proc_outside)が2番目の呼び出し(test_proc_inside)を呼び出します。LINQ to SQL - ストアドプロシージャのネスト
私のtest_proc_outsideストアドプロシージャをドラッグして視覚的に新しいLINQ to SQL .dbmlファイルを作成すると、生成されたクラス(test_proc_outsideResult)に実際に内部proc(test_proc_inside)結果セットのモデリングが含まれます。ここ
は、外部ストアドプロシージャ(test_proc_outside)のコードである: AS
CREATE PROCEDURE [dbo].[test_proc_outside]
@test1 int = 1,
@test2 int = 2,
@test3 int = 3
をBEGIN - SELECT文を妨害 - 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)のコードである: AS
CREATE PROCEDURE [dbo].[test_proc_inside]
-- Add the parameters for the stored procedure here
@test1 int = 1,
@test2 int = 2
をBEGIN - 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
END GO
はDBML生成ストアドプロシージャ(またはネストされたストアド・プロシージャ)に設定された非常に最初の結果を探していることが表示され、そのためのモデルを出してくれる。
代わりに関数にネストされたproc呼び出しを変更すると、私は望むモデル(test_proc_outside)を取得します。
外部のproc(test_proc_outside)に結果セットのクラスを生成し、test_proc_insideの内部結果を気にしないようDBMLファイルに指示する設定がありますか?事前に
おかげで、
クレイグ