继续为想使用Entity Framework的朋友在前面探路,分享的东西虽然技术含量不高,但都是经过实践检验的。
在Entity Framework中使用事务很简单,将操作放在TransactionScope中,并通过Complete()方法提交事务即可。
示例代码如下:
TransactionScope的命名空间在System.Transactions下
1 using (BlogDbContext context =new BlogDbContext()) 2 { 3 using (TransactionScope transaction =new TransactionScope()) 4 { 5 context.BlogPosts.Add(blogPost); 6 context.SaveChanges(); 7 postBody.ID = blogPost.ID; 8 context.EntryViewCounts.Add( 9 new EntryViewCount() { EntryID = blogPost.ID }); 10 context.PostBodys.Add(postBody); 11 context.SaveChanges(); 12 //提交事务 13 transaction.Complete(); 14 } 15 }
经过测试验证,在transaction.Complete()之前的代码中只要出现异常,事务就会回滚。