我有一個短小精悍的方法,我想對一個類存儲。
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屬性尚未初始化。
我還有其他幾種方法,它們工作正常,而不是我需要返回列表的方法。
您將作為參數傳遞事務。命名為:
var results = TransactionBlock.Connection.Query<OpenMessages>
(sql,
transaction: TransactionBlock.Transaction).ToList();
此外,如果它確實是一個存儲過程,您可能想要添加:
commandType: CommandType.StoredProcedure