我有一个短小精悍的方法,我想存放一个类。
using (var block = new TransactionBlock())
{
const string sql =
"select * from Messages where statusId not in ('5','6')";
var results = TransactionBlock.Connection.Query<OpenMessages>
(sql,TransactionBlock.Transaction).ToList();
block.Commit();
return results;
}
所以,OpenMessages是:
public class OpenMessages
{
public List<string> MessageId { get; set; }
}
正在返回以下错误:
System.InvalidOperationException未被用户代码处理 的HResult = -2146233079 Message = ExecuteReader要求命令在分配连接时具有事务 该命令处于挂起的本地事务中。命令的Transaction属性没有 已初始化。
我还有其他几种方法,它们工作正常,而不是我需要返回列表的方法。
答案 0 :(得分:4)
您正在将交易作为参数传递。将其命名为:
var results = TransactionBlock.Connection.Query<OpenMessages>
(sql,
transaction: TransactionBlock.Transaction).ToList();
此外,如果它确实是一个存储过程,您可能想要添加:
commandType: CommandType.StoredProcedure