Puoi mostrare un semplice esempio di accesso ai contenuti di un'entità in un aggregato tramite una radice aggregata? Non sono chiaro su come si rappresenterebbero le autorizzazioni Aggregate per riflettere questi concetti. tia.Accesso alle entità tramite radice aggregata: semplice esempio?
risposta
In genere si incapsulerebbe questo in comandi che l'Aggregato espone sul proprio contratto.
Ad esempio, con un ordine aggregato, è possibile aggiungere OrderLines utilizzando i dati ottenuti dalla GUI.
// This is the Order Aggregate Root
public class Order
{
private readonly int id;
private readonly Customer customer; // Customer is another Aggregate
private readonly IList<OrderLine> orderLines;
private readonly IOrderLineFactory orderLineFactory;
public Order(int id, Customer customer, IOrderLineFactory orderLineFactory)
{
this.id = id;
this.customer = customer;
this.orderLines = new List<OrderLine>();
this.orderLineFactory = orderLineFactory;
}
public void AddOrderLine(Item item, int quantity)
{
OrderLine orderLine = orderLineFactory.Create(this, item, quantity);
orderLines.Add(orderLine);
}
}
So che questa è una vecchia domanda ma ... Nel tuo modello, se volessi aggiornare una OrderLine, come sarebbe .... dovresti avere un elenco di ordini pubblici? E quindi passare l'ordine di nuovo a un repository per aggiornare l'ordine/cliente/OrderItems? – Craig
@Crea un po 'di fortuna con la domanda precedente? Sto davvero lottando con esattamente la stessa cosa. Come si effettuano aggiornamenti su entità nidificate all'interno di una radice aggregata? – Sudarshan
@Sudarshan Tutti gli accessi devono passare attraverso la radice aggregata - quindi no, non ci dovrebbe essere un elenco di linee di ordine pubblico. Avresti bisogno di esporre un metodo sulla radice aggregata per consentire questo. –
- 1. Semplice radice aggregata e repository
- 2. DDD: domanda radice aggregata
- 3. Accesso alle tabelle HBase tramite Spark
- 4. Come viene eliminata una radice aggregata gestita in DDD?
- 5. Semplice esempio del file di entità da caricare con OneupUploaderBundle
- 6. La radice aggregata con gerarchia profonda è appropriata in DDD?
- 7. Accesso dinamico alle celle
- 8. Query di join esterno tramite LINQ alle entità
- 9. Ottieni attributi personalizzati applicati alle entità generate tramite l'attributo MetadataType
- 10. LINQ alle entità tramite la proprietà di interfaccia
- 11. Esempio di threading semplice esempio
- 12. AWS - Accesso alle istanze nella subnet privata tramite EIP
- 13. Impossibile selezionare l'entità tramite variabili di identificazione senza selezionare almeno un alias di entità radice
- 14. iOS accesso alle funzionalità di Safari Reader tramite UIWebView
- 15. Accesso alle variabili private in Java tramite la riflessione
- 16. Accesso alle regole di query media CSS tramite JavaScript/DOM
- 17. entità quadro entità sql vs linq alle entità
- 18. DDD: sottoclassi e le entità di radice
- 19. Accesso alle stringhe di connessione tramite un servizio Web
- 20. sdk iPhone - accesso alle informazioni sul brano corrente tramite un'app
- 21. Accesso alle e-mail da gmail tramite IMAP (javamail API)
- 22. Consenti accesso HTTP alle istanze AWS solo tramite ELB
- 23. linq alle entità generate sql
- 24. Utilizzo di DateTime in LINQ alle entità
- 25. Esempio OpenID GWT semplice
- 26. Esempio di delegato semplice?
- 27. listfragment semplice esempio
- 28. StackExchange.Redis semplice C# Esempio
- 29. Esempio di semaforo semplice
- 30. Polimorfismo su semplice esempio
zsharp - c'è qualcosa che vuoi chiarire nella risposta che ho dato qui sotto? –