我总是DbContext.SaveChanges()在UnitOfWork.Commit()方法中看到一个。但是,当我从 DbContext 获取实体并更改属性时,UnitOfWork.Commit()会将新实体值写回我的数据库,而无需任何验证。
我会避免使用集成的DbContext.Configuration.ValidateOnSaveEnabled = true;.
目前我不使用 UnitOfWork-Pattern。我对我的服务类中的每个插入/更新操作运行验证,如果验证成功,存储库调用DbContext.SaveChanges()。
如何避免UnitOfWork.Commit()使用无效实体?如果我在 ASP.NET MVC 控制器中使用 UnitOfWork 对象,正如它在此答案中所建议的那样:
在哪里工作单元属于 w/EF4、IoC (Unity) 和存储库?
...无法保证验证已完成。