次のように仮定します。
CREATE PROCEDURE [MySPROC]
AS
BEGIN
CREATE TABLE #tempSubset(
[MyPrimaryKey] [bigint] NOT NULL,
[OtherColumn] [int] NOT NULL)
INSERT INTO #tempSubset (MyPrimaryKey, OtherColumn)
SELECT SomePrimaryKey, SomeColumn
FROM SomeHugeTable
WHERE LimitingCondition = true
SELECT MyPrimaryKey, OtherColumn
FROM #tempSubset
WHERE SomeExpensiveCondition = true
END
関数のインポートを生成するか、戻り値の型をマップすると、EF は複合型を生成しないか、次のように通知します。
選択したストアド プロシージャまたは関数は列を返しません
これを克服する方法は?
他の回答は、テーブル変数を使用することを提案しています(パフォーマンス上の理由からこれを行うつもりはありません) 。戻り値のスキーマを偽造し、実際のストアド プロシージャをコメント アウトします。他の回答は、ビューで同様のことを行うことを提案していますが、追加することなくこれを行う方法が必要です。不必要なオーバーヘッドや、モデルを更新するためにストアド プロシージャを中断する必要がありますか?