UnitOfWork.cs 680 B

1234567891011121314151617181920212223242526
  1. using Quadarax.Foundation.Core.Data.Interface.Domain;
  2. using Quadarax.Foundation.Core.Object;
  3. namespace Quadarax.Foundation.Core.Data.Domain
  4. {
  5. public class UnitOfWork<TDomainContext> : DisposableObject, IUnitOfWork<TDomainContext> where TDomainContext : IDomain
  6. {
  7. public TDomainContext Context { get; protected set; }
  8. public UnitOfWork(IDomainContextResolver<TDomainContext> context)
  9. {
  10. Context = context.GetCurrent<TDomainContext>();
  11. }
  12. public void Commit()
  13. {
  14. Context.Commit();
  15. }
  16. protected override void OnDisposing()
  17. {
  18. Context = default;
  19. }
  20. }
  21. }