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();
}