EntitySpaces2009支持事务

EntitySpaces2009支持事件。

Transactions

You do not need to wrap saves on a single collection in a transaction. EntitySpaces does this for you, even if you have multiple inserts, updates, and deletes. Use transactions if you are saving two or more objects that need to rollback as a set in the event of a failure. EntitySpaces has two transaction models. esTransactionScope works with all supported databases. Set providerClass="DataProvider" in your app.config. TransactionScope uses the new .NET 2.0 TransactionScope class for databases that support it. Set providerClass="DataProviderEnterprise" in your app.config.

e.g.

OrdersCollection ordersCollection = new OrdersCollection();  
Orders ordersEntity = new Orders();  
OrderDetailsCollection orderDetailsCollection = new OrderDetailsCollection();  
OrderDetails orderDetailsEntity = new OrderDetails();  
   
ordersEntity = ordersCollection.AddNew();  
ordersEntity.str.CustomerId = "3";  
   
orderDetailsEntity = orderDetailsCollection.AddNew();   
  
orderDetailsEntity.str.ProductId = "147";  
orderDetailsEntity = orderDetailsCollection.AddNew();  
orderDetailsEntity.OrderId = orderId;  
orderDetailsEntity.str.ProductId = "255";  
   
using(esTransactionScope scope = new esTransactionScope())  
{  
         ordersCollection.Save();   

         //设置子对象的外键字段的值必须在父对象的主键值得到后才能设置,不然此值为null

         orderDetailsEntity.OrderId = ordersEntity.Id.Value;
         orderDetailsCollection.Save();  
         scope.Complete();  
}

原文地址:https://www.cnblogs.com/Rising/p/1660359.html