UnitOfWork 中的事务处理
在 UnitOfWork + EF IRepository模式下,不能直接用TransactionScope处理事务,会报错,提示需要设置什么分布式事务管理器
UnitOfWork 已有关于事务的处理
关键代码
UnitOfWork.TransactionEnabled = true;//启用事务
// code...
UnitOfWork.SaveChanges(); // 提交保存到数据库,不执行是不会保存到数据库的
IUnitOfWork 接口
public interface IUnitOfWork : IDependency
{
bool TransactionEnabled { get; set; }
bool ProxyCreationEnabled { get; set; }
int ExecuteSqlCommand(TransactionalBehavior transactionalBehavior, string sql, params object[] parameters);
Task<int> ExecuteSqlCommandAsync(TransactionalBehavior transactionalBehavior, string sql, params object[] paramters);
int SaveChanges();
Task<int> SaveChangesAsync();
IEnumerable<TElement> SqlQuery<TElement>(string sql, params object[] para

本文探讨了在使用UnitOfWork和EF IRepository模式时如何处理事务,特别指出直接使用TransactionScope会导致分布式事务错误。文章介绍了UnitOfWork中事务的实现方式,并展示了IUnitOfWork接口的关键代码,提供了使用示例。
最低0.47元/天 解锁文章
386





