使用SqlQuery处理存储过程中的多个结果我有一个存储过程,它返回一组多个结果(两个表)。我这样调用存储过程:varresult=context.Database.SqlQuery("exec[dbo].[GetReferrer]@StartDate,@EndDate,@Source",this.CreateInParam("@StartDate",SqlDbType.DateTime,startDate),this.CreateInParam("@EndDate",SqlDbType.DateTime,endDate),this.CreateInParam("@Source",SqlDbType.SmallInt,eventSourveVal)).ToArray();我的RefererStatisticResult包含结果集的两个列表属性,但调用后列表为空。我应该如何处理结果集?是否可以使用SqlQuery?DbContext没有对实现多个结果集的本机支持。但是,通过下拉到ObjectContext并使用Translate方法将结果从DbDataReader复制到域模型中的实体,实现起来相当简单。这是一些示例代码。这假定您的ReferrerStatisticResult只是两个名为Set1和Set2的列表的容器。显然要适应您的实际领域模型。以上就是C#学习教程:使用SqlQuery处理存储过程的多个结果。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——//Createcontainerreadyfortheresultsetsvarresult=newRefererStatisticResult();using(varmyContext=newMyContext()){//从上下文创建命令以执行//`GetReferrer`procvarcommand=myContext.Database.Connection.CreateCommand();命令.CommandType=System.Data.CommandType.StoredProcedure;command.CommandText="[dbo].[GetReferrer]";//添加命令参数//(未显示)try{myContext.Connection.Open();varreader=command.ExecuteReader();//下拉到包装的`ObjectContext`以访问//`Translate`方法varobjectContext=((IObjectContextAdapter)myContext).ObjectContext;//从第一个结果集中读取Entity1result.Set1=objectContext.Translate(reader,"Set1",MergeOptions.AppendOnly);//从第二个结果集中读取Entity2reader.NextResult();result.Set2=objectContext.Translate(r标题,“Set2”,MergeOptions.AppendOnly);}最后{myContext.Database.Connection.Close();}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。明源:
