上一篇:《DDD 領(lǐng)域驅(qū)動設(shè)計-談?wù)?Repository、IUnitOfWork 和 IDbContext 的實踐(2)》
這篇文章主要是對 DDD.Sample 框架增加 Transaction 事務(wù)操作,以及增加了一些必要項目。
雖然現(xiàn)在的 IUnitOfWork 實現(xiàn)中有 Commit 的實現(xiàn),但也就是使用的 EF SaveChanges,滿足一些簡單操作可以,但一些稍微復(fù)雜點的實體操作就不行了,并且 Rollback 也沒有實現(xiàn)。
現(xiàn)在的 UnitOfWork 實現(xiàn)代碼:
public class UnitOfWork : IUnitOfWork{ private IDbContext _dbContext; public UnitOfWork(IDbContext dbContext) { _dbContext = dbContext; } public void RegisterNew<TEntity>(TEntity entity) where TEntity : class { _dbContext.Set<TEntity>().Add(entity); } public void RegisterDirty<TEntity>(TEntity entity) where TEntity : class { _dbContext.Entry<TEntity>(entity).State = EntityState.Modified; } public void RegisterClean<TEntity>(TEntity entity) where TEntity : class &nbs