我正在做一个迁移项目,我正在将一个 Web 表单应用程序迁移到一个 ASP.NET MVC 4 应用程序。
我遇到了这种情况,我需要一点帮助。
在旧的网络表单项目中,我存储了类似...
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
结果集不同。
现在我想使用实体框架来执行这个存储过程,所以我导入了函数并使用EF 提供的Get Column Information
+选项创建了一个复杂类型。Create Complex Type
现在它在我输入一个有效的 @input 时运行,SELECT * FROM Electronics WHERE name = @input
但是当我输入一个不存在的输入而不是返回一个 101 错误代码时,它给了我一个错误。抛出异常。
异常详情
数据读取器与指定的“testEFModel.GetTestResults_Result1”不兼容。类型的成员“id”在数据读取器中没有同名的对应列。
我应该如何解决这个问题?