मैं एक n स्तरीय समाधान जहां मैं एक WCF सेवा से संबंधित डेटा पुन: प्राप्त कर रहा हूँ बनाया है, एक Windows Forms अनुप्रयोग के भीतर इसे अद्यतन करने, और फिर WCF के माध्यम से अद्यतन डेटा लौटने डेटाबेस के लिए कायम किए जाने की । आवेदन, डब्ल्यूसीएफ सेवा और डेटाबेस सभी अलग-अलग मशीनों पर हैं।इकाई की रूपरेखा, WCF और अपडेट
डेटा पुनः प्राप्त किया जा रहा एक वस्तु और बच्चे वस्तुओं के होते हैं ...
public Product Select(string catalogueNumber) {
return (from p in this.ProductEntities.Products.Include(@"Tracks")
where p.vcCatalogueNumber == catalogueNumber
select p).FirstOrDefault() ?? new Product();
}
अद्यतन क्लाइंट अनुप्रयोग, साथ ही मौजूदा सामग्री को अद्यतन करने के रूप में, यह भी अतिरिक्त "ट्रैक" वस्तुओं सम्मिलित कर सकते हैं द्वारा लागू किया जा रहा।
मैं क्लाइंट अनुप्रयोग से वापस उत्पाद वस्तु प्राप्त करते हैं, मैं अद्यतन के सभी सही ढंग से देख सकते हैं, लेकिन आदेश में परिवर्तन सही ढंग से मैं कुछ हुप्स के माध्यम से कूद करने के लिए है के सभी को बचाने के लिए ...
public void Save(Product product) {
Product original = this.Select(product.vcCatalogueNumber);
if (original.EntityKey != null) {
this.ProductEntities.ApplyPropertyChanges(product.EntityKey.EntitySetName, product);
// There must be a better way to sort out the child objects...
foreach (Track track in product.Tracks.ToList()) {
if (track.EntityKey == null) {
original.Tracks.Add(track);
}
else {
this.ProductEntities.ApplyPropertyChanges(track.EntityKey.EntitySetName, track);
}
}
}
else {
this.ProductEntities.AddToProducts(product);
}
this.ProductEntities.SaveChanges();
}
निश्चित रूप से, ऐसा करने का एक आसान तरीका होना चाहिए?
नोट: मैं दोपहर EntityBag परियोजना की जांच के अधिकतर हिस्से तक खर्च किया है, लेकिन पाया कि इस एफई आरटीएम के साथ काम करने के लिए अद्यतन नहीं किया गया है। विशेष रूप से, जब तक यह नई वस्तुओं में मिश्रण करते समय मौजूदा डेटा अपवादों को सफलतापूर्वक अपडेट कर देगा।
यह शायद कुछ है कि मैं इस पर गौर करना चाहिए, लेकिन अभी तक मुझे नहीं है । दुर्भाग्यवश, हमने हाल ही में ईएफ और डब्ल्यूसीएफ का उपयोग करना शुरू कर दिया है जहां मैं काम करता हूं और एस्टोरिया वर्तमान में नई प्रौद्योगिकियों की सूची में जांच करने के लिए एक और वस्तु है। धन्यवाद। –
मुझे अंततः इस पर देखने के लिए मिल गया है (मुख्य रूप से क्योंकि मैंने सिल्वरलाइट के साथ खेलना शुरू किया) और वास्तव में, मुझे लगता है कि यह वह जवाब है जिसे मैं ढूंढ रहा था। –