相关疑难解决方法(0)

Dapper.NET和存储过程具有多个结果集

有没有办法使用Dapper.NET与返回多个结果集的存储过程?

在我的例子中,第一个结果集是一行,只有一列; 如果是,0则调用成功,第二个结果集将包含实际的行/列数据.(如果它不为零,则会发生错误,并且不会提供第二个结果集)

有没有机会用Dapper.NET处理这个?到目前为止,我只回到那个单身0- 但仅此而已.

更新:好的,它工作正常 - 只要结果集没有.2是单个实体:

Dapper.SqlMapper.GridReader reader = 
    _conn.QueryMultiple("sprocname", dynParams, 
    commandType: CommandType.StoredProcedure);

int status = reader.Read<int>().FirstOrDefault();
MyEntityType resultObj = reader.Read<MyEntityType>().FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

现在,我还有另一项要求.

对于第二个结果集,Dapper的多映射(将从SQL Server返回的单行拆分为两个独立的实体)似乎尚未得到支持(至少似乎没有.Read<T>可以处理的重载)多映射).

如何将该行拆分为两个实体?

sql-server stored-procedures multiple-resultsets dapper

73
推荐指数
3
解决办法
5万
查看次数

从sql server存储过程返回多个数据集

我需要通过Web Api返回基于调用运行5个不同查询的存储过程的Base64 XML输出.

存储过程没有编写(我需要编写)但有5个查询,其中数据是完全不同的表和列等...所以我想知道这是否可能?

我知道在Oracle中你可以返回多个游标,但是使用SQL Server,我可以返回到asp.net 4.5(mvc c#/ Ado.net)多个数据集或集合吗?这有什么例子吗?

只有一个查询的示例

   -- Content Tab
SELECT -- vTC.[TemplateId]  
  t.Name as "Client Name and Document"  ,vTC.[SectionName] ,vTC.[ContentId] ,vTC.[ContentName]
  ,vTC.[ContentDescription],vTC.[ContentValue] ,CAL.ContentValue as "Spanish Content" , iif(S.IsClientSection = 1, 'Global Section','Template Section') as "Global or Template Section"
  ,DT.Title as DataType ,iif(vTC.IsRequired = 1, 'Yes', 'No') as "Required" ,vTC.[DisplayType] 
FROM [dbo].[vwTemplateContent] vTC
 left join dbo.Template t on vTC.TemplateId = t.TemplateId
  left join dbo.DataType DT on vTC.DataTypeId = dt.datatypeid
   left join dbo.Section S on S.SectionID = vTC.SectionID …
Run Code Online (Sandbox Code Playgroud)

c# sql-server asp.net stored-procedures

7
推荐指数
2
解决办法
2万
查看次数