WebフォームアプリをASP.NETMVC4アプリに移行する移行プロジェクトに取り組んでいます。
私は少し助けが必要なこの1つのシナリオに出くわしました。
古いWebフォームプロジェクトでは、次のようなプロシージャを保存しました...
ALTER PROCEDURE [dbo].[TestMultipleResultSet]
@input VARCHAR
AS
BEGIN
SET NOCOUNT ON;
IF NOT EXISTS
(
SELECT * FROM Electronics
WHERE name = @input
)
BEGIN
SELECT 101 AS errorcode
RETURN
END
SELECT * FROM Electronics
WHERE name = @input
END
上記のif not exist
チェックのように、結果セットとして異なるを与える他の多くのチェックがありますselect * from
。
ここで、Entity Frameworkを使用してこのストアドプロシージャを実行したいので、関数をインポートし、EFが提供するGet Column Information
+オプションを使用して複合型を作成しました。Create Complex Type
これで、実行する有効な@inputを入力すると実行SELECT * FROM Electronics WHERE name = @input
されますが、101エラーコードを返す代わりに存在しない入力を入力すると、エラーが発生します。例外がスローされます。
例外の詳細
データリーダーは、指定された'testEFModel.GetTestResults_Result1'と互換性がありません。タイプ'id'のメンバーには、同じ名前の対応する列がデータリーダーにありません。
これをどのように解決すればよいですか?