C# 如何使用存储过程返回的多个变量和表

C# 如何使用存储过程返回的多个变量和表,c#,entity-framework,tsql,stored-procedures,sql-server-2012,C#,Entity Framework,Tsql,Stored Procedures,Sql Server 2012,如何使用存储过程返回的多个变量和表? 从我读到的内容来看,这些变量和表应该是从存储过程返回的。我不知道如何从我的C#代码中访问它们 这是存储过程的相关部分 DECLARE @ReaderName nvarchar(MAX); DECLARE @TrainID int; SELECT @ReaderName = Name, @TrainID = Train_Id FROM Readers WHERE Id=@ReaderID DECLARE @TrainName nvarchar(MAX);

如何使用存储过程返回的多个变量和表? 从我读到的内容来看,这些变量和表应该是从存储过程返回的。我不知道如何从我的C#代码中访问它们

这是存储过程的相关部分

DECLARE @ReaderName  nvarchar(MAX);
DECLARE @TrainID int;

SELECT @ReaderName = Name, @TrainID = Train_Id FROM Readers WHERE Id=@ReaderID
DECLARE @TrainName nvarchar(MAX);
DECLARE @LineID int;
SELECT @TrainName = Name, @LineID = Line_Id FROM Trains WHERE ID = @TrainID
DECLARE @LineName nvarchar(MAX);
SELECT @LineName = Name FROM Trains WHERE ID = @LineID

DECLARE @EmailList dbo.EmailList;

INSERT INTO @EmailList SELECT Emails.EmailAddress FROM ReaderEmails JOIN Emails ON Emails.Id = ReaderEmails.Email_Id WHERE ReaderEmails.Reader_Id = @ReaderID

SELECT * FROM @EmailList;
SELECT * FROM @StatusList;
所以我需要ReaderName、TrainName、LineName、EmailList(表)和@StatusList(表)

databaseAPI是我的DbContext

这是我的密码

我试过这样使用ExecuteStoreQuery

var result = ((System.Data.Entity.Infrastructure.IObjectContextAdapter)databaseAPI).ObjectContext.ExecuteStoreQuery(command, sqlParamMac, sqlParamTags);
但是我得到了以下错误

无法根据用法推断方法“System.Data.Entity.Core.Objects.ObjectContext.ExecuteStoreQuery(string,string,System.Data.Entity.Core.Objects.ExecutionOptions,params object[])的类型参数。尝试显式指定类型参数


您可能需要查看输出参数,但它不是很清楚。我试图尽可能清楚。你还需要知道什么?让我知道,我会更新我的问题。输出参数的问题是它们不适用于TVP,我需要传回两个表(现在是一个,两个会立即更新)
var result = ((System.Data.Entity.Infrastructure.IObjectContextAdapter)databaseAPI).ObjectContext.ExecuteStoreQuery(command, sqlParamMac, sqlParamTags);