我已经在Helper
类以下的方法,我使用它精致小巧称为后查询多个:无法读取的短小精悍
Helper.cs:
public SqlMapper.GridReader MQueries(string spName, object dynamicParams)
{
using (IDbConnection conn = new SqlConnection(ConfigurationManager.AppSettings["MyConnection"]))
{
conn.Open();
return conn.QueryMultiple(spName, dynamicParams, commandType: CommandType.StoredProcedure);
}
}
我打电话从以上称为DataAccess
另一类方法:
DataAccess.cs:
public Member GetMemberDetails(Member member)
{
var multi = Helper.MQueries("GetMemberDetails", member);
var member = multi.Read<Member>().Single();
var memberStatus = multi.Read<MemberStatus>().Single();
var memberContact = multi.Read<MemberContact>().ToList();
var memberFinancial = multi.Read<MemberFinancial>().ToList();
member.MemberStatus = memberStatus;
member.MemberContact = memberContact;
member.MemberFinancial = memberFinancial;
return member;
}
但是,multi variable
有数据,但是一旦我想分开它并映射到另一个变量,我得到了名为cannot read while the reader is closed
的异常。
我知道那是因为我使用的using statement
,所以multi variable
后,连接得到自动关闭,所以我不能读什么..
我怎样才能解决这个问题?
你的答案大加赞赏
感谢
你应该简单地从辅助方法返回的数据集,而不是读者。我不确切知道哪个API返回数据集,但我想你可以找到这个 – ibubi