我刚刚进入实体框架,我一直在查看文档,以便我可以获得基本的理解。
将数据保存到数据库的所有MS'示例都使用上下文的ChangeTracker,其方式类似于在常规SQL中使用事务的方式(执行所需的所有查询,然后通过调用{{1}一次性应用它们})。
来自here的示例:
context.SaveChanges()
这一切都很好。但是,查看MySql Connector的文档,在EF6支持的示例中,他们同时使用ChangeTracker 和常规事务。
来自here的示例:
using (var db = new BloggingContext())
{
var blog = new Blog { Url = "http://sample.com" };
db.Blogs.Add(blog);
db.SaveChanges();
}
我的问题是,为什么同时使用?在这种情况下使用交易有什么好处吗?如果是这样,它们是否特定于MySql,或者对所有提供商都是如此吗?
要明确的是,我意识到使用事务可以回滚在异常情况下所做的所有更改,但是如果没有提交就不会处理上下文吗?