2011-03-28 11 views
9

एंटिटी फ्रेमवर्क ऑब्जेक्टसेट अपनी विधि के साथ ToList केवल सहेजी गई इकाइयों को दिखाता है। इसका मतलब है कि, जब मैंएंटिटीफ्रेमवर्क परिवर्तनों को सहेजने से पहले इकाइयों को दिखाएं

context.AddToCustomers(myNewCust); 

और फिर फोन (बुला SaveChanges के बिना)

myDataGrid.DataContext = context.Customers.ToList(); 

डेटा ग्रिड नए जोड़े इकाई प्रदर्शित नहीं करता है (यहां तक ​​कि context.Customers.Count() यह शामिल नहीं है)।

क्या इन इकाइयों को दिखाने का कोई तरीका है (EntityState = Added वाले)?

अग्रिम धन्यवाद। TryGetObjectStateEntry (EntityKey, ObjectStateEntry) पर

उत्तर

8

मुझे लगता है कि आप की तरह कुछ फोन करके न सहेजा गया जोड़ा संस्थाओं प्राप्त कर सकते हैं: बस अपने प्रश्न पढ़कर

var inserted = context.ObjectStateManager 
         .GetObjectStateEntries(EntityState.Added) 
         .Where(e => !e.IsRelationship) 
         .Select(e => e.Entity) 
         .OfType<Cutomer>(); 

लेकिन, मुझे डर है कि आप कुछ गलत करने की कोशिश कर रहे हैं। आपको पुनर्प्राप्त किए गए सहेजे गए इकाइयों को गठबंधन करने की आवश्यकता क्यों है? यदि आपको सहेजे गए सामग्री को दिखाने की आवश्यकता है तो आपको इसे अपने स्वयं के अलग संग्रह में रखना चाहिए।

+0

"आपको सहेजे गए सहेजे गए इकाइयों को पुनः प्राप्त करने की आवश्यकता क्यों है?" शायद आपके पास एक सूची में प्रदर्शित संबंधित बच्चों की संस्थाओं के साथ एक रूप में एक संस्था है - आप सूची में नए बच्चों को जोड़ना चाहते हैं, लेकिन जब वे मूल इकाई को सहेजते हैं तो केवल बच्चों को बनाए रखना चाहते हैं। – markmnl

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