使用Transactions或SaveChanges(false)和AcceptAllChanges()?
我一直在调查事务,只要我将 false 传递给 SaveChanges() 然后如果没有错误就调用 AcceptAllChanges() ,它们似乎会在EF中处理它们自己: SaveChanges(false); // ... AcceptAllChanges(); 如果事情变坏怎么办? 我不必回滚,或者一旦我的方法超出范围,交易结束了吗? 在事务中途分配的任何indentiy列会发生什么? 我认为如果其他人在我的事情发生之前添加了一条记录,那么这意味着会有一个缺失的身份值。 有没有理由在我的代码中使用标准的 TransactionScope 类? #1楼 如果您使用的是EF6(实体框架6+),则对数据库调用SQL的情况已发生变化。 请参阅: http : //msdn.microsoft.com/en-us/data/dn456843.aspx 使用context.Database.BeginTransaction。 来自MSDN: using (var context = new BloggingContext()) { using (var dbContextTransaction = context.Database.BeginTransaction()) { try { context.Database.ExecuteSqlCommand( @"UPDATE Blogs