【发布时间】:2019-08-01 12:26:02
【问题描述】:
我有一个 Main 存储过程,它在其中调用 4 个其他存储过程。
Alter PROCEDURE [dbo].COMBINED
@Status varchar(50)
AS
BEGIN
EXEC StatusMyFamilyProtectionPremier @Status = @status
EXEC StatusMyFamilyProtectionBasic @Status = @Status
EXEC StatusChildeducationSavings @Status = @status
exec StatusChildeducationTerm @Status = @status
END
当我在 SQL 中执行它时,它运行良好,并为我提供了所有 4 个内部存储过程的结果集..
但是当我从 MVC 应用程序调用 Main 存储过程时,我只能得到第一个内部存储过程的结果。
我不知道为什么它不返回其他 3 个内部存储过程的结果。
我是这样从我的应用程序中调用它的
var life = dc.COMBINED(status);
我直接从数据库将存储过程添加到我的模型中。
我不确定我到底做错了什么。
【问题讨论】:
-
“我将存储过程直接从数据库添加到我的模型中”使用实体框架,或者...?无论如何,这个“问题”的原因是无论您使用什么都期望 sprocs 返回一个结果集,以便创建一个实体来将该结果集放入其中。您的 sproc 正在返回多个结果集/实体,因此您可能必须手动映射它们......或者只是单独调用单独的 sprocs。
-
@IanKemp 是的,我正在使用实体框架。我之前是单独打电话给他们的,但我决定想办法一次给他们打电话。如何手动映射它们?
-
你可以直接从实体框架中获取多重结果
标签: sql sql-server asp.net-mvc stored-procedures