【发布时间】:2015-06-11 13:10:59
【问题描述】:
我对 EF 不太熟悉,但我正在使用 EF 的一些基本功能。最近我收到了https://msdn.microsoft.com/en-us/data/dn456843.aspx 关于 EF6 中的事务。
我之前使用过 SaveChanges(),因为我知道它会将操作包装在事务中。但我注意到我的一些同事正在使用 Database.BeginTransaction()。我四处搜索并得到以下结果,但我无法确认它是正确的。
SaveChanges() 是否仍然可以正常工作并在 SaveChanges 无法满足要求时使用 BeginTransaction,例如在这篇文章http://www.binaryintellect.net/articles/165bb877-27ee-4efa-9fa3-40cd0cf69e49.aspx 中将多个 SaveChanges 包装在单个事务中?
在那篇文章中,由于数据库上下文是相同的,我还可以添加两个对象并调用 SaveChanges() 一次,这也可以正常工作吗?我想如果我们要处理多个数据库上下文,那么我们最好使用 BeginTransaction 在一个事务中处理多个 SaveChanges() ?
编辑:
如果我想在一笔交易中有两个加法,以下是不正确的?为什么?
public void CreateAnimals()
{
context.Set<Cat>.Add(new Dog());
context.Set<Cat>.Add(new Cat());
context.SaveChanges();
}
编辑 2:
我的主要问题:什么时候可以使用 SaveChanges(),什么时候必须使用 BeginTransaction()? Database.BeginTransaction vs Transactions.TransactionScope 没有提到 SaveChanges
【问题讨论】:
标签: entity-framework