2009-04-03 13 views
5

क्या आप एक इकाई की सामग्रियों को इटा समेकित रूट के माध्यम से एक्सेस करने का सरल उदाहरण दिखा सकते हैं? मैं इस अवधारणाओं को दर्शाने के लिए कुल अनुमतियों का प्रतिनिधित्व करने के तरीके पर स्पष्ट नहीं हूं। तिया।कुल रूट के माध्यम से इकाइयों तक पहुंच: सरल उदाहरण?

+2

zsharp - क्या ऐसा कुछ है जिसे आप नीचे दिए गए उत्तर में साफ़ करना चाहते हैं? –

उत्तर

7

आप आम तौर पर आदेशों में इसे समाहित करेंगे कि कुल अनुबंध उसके अनुबंध पर खुलासा करता है।

उदाहरण के लिए, ऑर्डर कुल के साथ, आप अपने जीयूआई से प्राप्त डेटा का उपयोग करके ऑर्डरलाइन जोड़ सकते हैं।

// 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); 
    } 
} 
+4

मुझे पता है कि यह एक पुराना सवाल है लेकिन ... आपके मॉडल में, अगर मैं ऑर्डरलाइन अपडेट करना चाहता था, तो यह कैसा दिखता है .... क्या सार्वजनिक ऑर्डरलाइन सूची होनी चाहिए? और फिर ऑर्डर/ग्राहक/ऑर्डर इटम्स को अपडेट करने के लिए ऑर्डर को रिपॉजिटरी में वापस पास करें? – Craig

+0

@ उपरोक्त प्रश्न पर किसी भी भाग्य को क्रिएट करें? मैं वास्तव में एक ही चीज़ के साथ वास्तव में संघर्ष कर रहा हूँ। एक समग्र रूट के भीतर नेस्टेड इकाइयों पर अपडेट कैसे करता है? – Sudarshan

+0

@ सुदर्शन सभी पहुंच कुल रूट के माध्यम से जाना चाहिए - इसलिए नहीं, सार्वजनिक आदेश लाइन सूची नहीं होनी चाहिए। आपको अनुमति देने के लिए कुल रूट पर एक विधि का पर्दाफाश करना होगा। –

संबंधित मुद्दे