我如何在 ServiceStack.Ormlite 中为 .Net 使用显式事务?

How can i use explicit transcations in ServiceStack.Ormlite for .Net?

可以在 OrmLite 中使用显式交易吗?

例如,在下面的代码中,我想在查询中使用作为参数传递的事务。这可能吗?

    public Order QueryOrder(IDbTransaction transaction)
    {
        var dbFactory = new OrmLiteConnectionFactory(ConfigurationManager.ConnectionStrings["OrmTests2"].ConnectionString, SqlServerOrmLiteDialectProvider.Instance);

        using (IDbConnection dbConn = dbFactory.OpenDbConnection())
        {
            return dbConn.Single<Order>(x => x.CustomerId == 1, [<transaction>]);
        }
    }

谢谢

您可以在 OrmLite 的主页上找到使用 OrmLite's transaction support 的信息和示例,您只需调用 db.OpenTransaction() 即可开始 ADO.NET 交易,例如:

using (IDbConnection db = dbFactory.OpenDbConnection())
using (IDbTransaction dbTrans = db.OpenTransaction())
{
    var customer = db.Single<Order>(x => x.CustomerId == 1);

    dbTrans.Commit();
}