Frage

Kann mir jemand zeigen einfache CRUD-Anweisungen für Aggregat root traditionellen ado.net verwenden? Vielen Dank im Voraus!

War es hilfreich?

Lösung

(Dies basiert auf der Annahme geschrieben, dass eine GUID oder einige nicht-Datenbank generiert Primärschlüssel verwendet wird) Auch eine Menge von Kessel Code wie Verbindungsmanagement etc ... sollte auf eine Basisklasse für Repository verschoben werden. Wenn Bestellen Sie das Aggregat Wurzel ist, möglicherweise sollte man OrderLineRepo der Montage privat

public class OrderRepository : Repository

{
    public void Save(Order order)
    {
        if(order.IsDirty)
        {
                    //sets up connection if required, command and sql
            ICommand command = BuildCommandForSave(order);  
            command.Execute();
            OrderLineRepository orderLineRepo = GetOrderLineRepo();
            foreach(OrderLine line in order.OrderLines)
            {
                orderLineRepo.Save(line);
            }
        }
    }
}

Allerdings würde ich betonen, dass dies wirklich eine einfache naive Implementierung, und das würde ich persönlich ein ORM wie nHibernate für meine Hartnäckigkeit nutzen, wenn DDD wie die Anforderungen für eine gute gut getestet Persistenz-Schicht zu tun bin nicht-trivial

Auch setzt dies voraus, dass die IsDirty Funktion Kinder berücksichtigt - wir würden auch ein Mittel benötigen, um zu sehen, wenn der Auftrag neu / bearbeiten, nicht nur schmutzig

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top