这是我第一次使用EF。
我想知道EF 5在保存时是否会自动回滚错误。我创建了一个测试应用程序,看起来是这样的,但我不确定它是否是一个设置。
这是我的密码
public Test()
{
InitializeComponent();
//Gets Gets unit of work for a specific context
var s=DAL.DALHelper.GetUnitOfWork();
var categoryRepo=s.GetRepository<Category>();
var onlyRecord = s.GetRepository<Category>().GetById(3);
onlyRecord.CategoryDescription = "Test2222";
Category catToAdd=new Category();
catToAdd.CategoryDescription="Test3";
catToAdd.CategoryName="Toys";
//This will break due to a constraint
categoryRepo.Add(catToAdd);
s.Save();
}我在网上看到了很多代码,这些代码显示了在事务中运行代码,所以我对自动回滚有点怀疑。
发布于 2013-11-30 19:22:36
对DbContext.SaveChanges()的调用有一个隐式事务,因此在单个DbContext.SaveChanges()调用期间执行的任何抛出异常的操作都会回滚。如果您两次调用DbContext.SaveChanges(),而第二个调用导致异常,则不会回滚对第一个SaveChanges()调用的更改。
https://stackoverflow.com/questions/20304551
复制相似问题