Wie bietet die Einheit des Arbeitsmusters Verweise auf neue Aggregate?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Wie bietet die Einheit des Arbeitsmusters Verweise auf neue Aggregate?

Post by Anonymous »

Hintergrund < /strong> < /p>

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();
}
Nehmen Sie die Implementierungen von Irepository eine relationale Datenbank und die Implementierung von iunitofwork an. Ich würde sagen, dass das, was ich oben beschrieben habe, eine standardmäßige, direkte Interpretation der aggregierten Wurzel-, Repository- und Uow -Muster (Nhibernate /EF und all ihrer aufgeblähten Herrlichkeit ungeachtet) ist. Zum Beispiel: < /p>

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 
und einen blog mit blog.userid auf user.id ?>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post