You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
Units of work accept enrollment contributors: IUnitOfWork.AddEnrollmentContributor(IUnitOfWorkEnrollmentContributor) returns a handle that removes the contributor when disposed. A contributor states the concurrency scope an event source must carry before any event for it is staged, through AddEvent, AddEventWithNamedTags, AddEvents and every eventLog.Transactional append. Equal scopes merge; a conflicting scope is rejected with ConflictingEnrollmentScope and nothing from that call is staged. This lets a host such as Arc guard appends that user code makes directly on the unit of work. See Transactions. (#4861)
Changed
A unit of work that has had a contributor keeps every required scope until it completes, accepts events for only one event sequence, rejects changes made from inside a contributor with UnitOfWorkMutatedDuringEnrollment, and refuses to commit with UnitOfWorkEnrollmentNotificationFailed when a contributor's Enrolled notification fails. Units without contributors behave as before. Custom IUnitOfWork implementations keep compiling and throw UnitOfWorkEnrollmentContributorsNotSupported only when a contributor is attached. (#4861)