Wie ich es verstehe, liefert das UW -Muster (UOW) im Wesentlichen Transaktionssemantik. Mit anderen Worten, angesichts einer Domäne von Aggregaten, die von Repositorys bestanden werden, ermöglicht eine UOW -Klasse Verbrauchern der Domäne, Aufrufe von Repository -Methoden in einen Atombetrieb zu registrieren. Sagen wir, wir haben: < /p>
Code: Select all
interface IAggregate {
TKey Id { get; }
}
interface IRepository where TEntity : IAggregate {
TEntity Get(TKey id);
void Save(TEntity entity);
void Remove(TEntity entity);
}
interface IUnitOfWork {
void RegisterSave(TEntity entity);
void RegisterRemove(TEntity entity);
void RegisterUnitOfWork(IUnitOfWork uow);
void Commit();
void Rollback();
}
Code: Select all
class User : IAggregate {
int Id { get; private set; }
}
class Blog : IAggregate {
int Id { get; private set; }
int AuthorUserId { get; set; }
}
< /code>
Frage < /strong> < /p>
Wie würde man die oben genannten Trennung von Bedenken und Interpretation von aggregierten Grenzen angesichts der Verbraucher, die transaktionsmäßig ein Aggregat erstellen und das repository-generierte ID-ID-ID in einem anderen Aggregat retten müssen? Z.B. Wie kann ich einen Benutzer