本文整理汇总了C#中Zippy.RollbackTransaction方法的典型用法代码示例。如果您正苦于以下问题:C# Zippy.RollbackTransaction方法的具体用法?C# Zippy.RollbackTransaction怎么用?C# Zippy.RollbackTransaction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zippy
的用法示例。
在下文中一共展示了Zippy.RollbackTransaction方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Save
/// <summary>
/// 将订单保存到数据库
/// </summary>
/// <param name="tenantID"></param>
/// <param name="db"></param>
/// <param name="oid"></param>
public void Save(Guid tenantID, Zippy.Data.IDalProvider db, long? oid)
{
long orderID = 0;
Z10Order.Total = Items.Sum(s => s.Total);
Z10Order.TenantID = tenantID;
try
{
// 此处应该加入事务
db.BeginTransaction();
if (Z10Order.OrderID.HasValue && Z10Order.OrderID > 0)
{
orderID = Z10Order.OrderID.Value;
db.Update(Z10Order);
}
else
{
orderID = db.Insert(Z10Order);
Z10Order zorder = new Z10Order();
if (!oid.HasValue)
{
zorder.OrderID = orderID;
zorder.OriID = orderID;
}
else
{
zorder.OriID = oid;
}
//zorder.FeeShould = this.CalFeeShould();
db.Update(zorder);
}
foreach (Z10OrderItem item in Items)
{
item.ItemStatus = 1;
item.TenantID = tenantID;
item.Total = (item.Price ?? 0) * (item.CountShould ?? 0);
if (item.ItemID.HasValue && item.ItemID > 0 && item.OrderID == orderID)
{
db.Update(item);
}
else
{
item.OrderID = orderID;
var itemID = db.Insert(item);
item.ItemID = itemID;
}
}
Z10Order.OrderID = orderID;
db.Commit();
}
catch (Exception ex)
{
db.RollbackTransaction();
throw ex;
}
}