在Entity Framework中使用事务
Posted itjeff
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Entity Framework中使用事务相关的知识,希望对你有一定的参考价值。
继续为想使用Entity Framework的朋友在前面探路,分享的东西虽然技术含量不高,但都是经过实践检验的。
在Entity Framework中使用事务很简单,将操作放在TransactionScope中,并通过Complete()方法提交事务即可。
示例代码如下:
using (BlogDbContext context =new BlogDbContext())
{
using (TransactionScope transaction =new TransactionScope())
{
context.BlogPosts.Add(blogPost);
context.SaveChanges();
postBody.ID = blogPost.ID;
context.EntryViewCounts.Add(
new EntryViewCount() { EntryID = blogPost.ID });
context.PostBodys.Add(postBody);
context.SaveChanges();
//提交事务
transaction.Complete();
}
}
{
using (TransactionScope transaction =new TransactionScope())
{
context.BlogPosts.Add(blogPost);
context.SaveChanges();
postBody.ID = blogPost.ID;
context.EntryViewCounts.Add(
new EntryViewCount() { EntryID = blogPost.ID });
context.PostBodys.Add(postBody);
context.SaveChanges();
//提交事务
transaction.Complete();
}
}
经过测试验证,在transaction.Complete()之前的代码中只要出现异常,事务就会回滚。
【更新】
以上是关于在Entity Framework中使用事务的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Entity Framework 6 DbContext.Database.BeginTransaction 中配置事务超时?
在与 Entity Framework 的事务中通过 MassTransit 发送消息
Entity Framework Core 数据保存原理详解
Entity Framework Core 数据保存原理详解
Entity Framework :Using Transaction Scope 如何检查 DbContext 是不是有事务?