मैं एंटिटी फ्रेमवर्क (5.0 और वीएसईएक्सप्रेस 2012) सीख रहा हूं और मुझे WinForms में डेटा ग्रिड व्यू में मेरी क्वेरी बाध्य करने में वास्तविक समस्या है। मेरे पास निम्न कोड है और जब मैं एप्लिकेशन शुरू करता हूं तो यह मेरी क्वेरी ठीक से प्रदर्शित करता है लेकिन मुझे नहीं पता कि अंतर्निहित डेटाबेस में डेटा बदलने के बाद डेटा ग्रिडव्यू को अपडेट करने के लिए मुझे क्या करना है। ऐसा करने का सबसे अच्छा तरीका क्या है? मुझसे यहां क्या गलत हो रहा है?डाटाबेसिंग के लिए डेटा बाध्यकारी linq क्वेरी एंटीटी फ्रेमवर्क 5.0
private void Form1_Load(object sender, EventArgs e)
{
using(var ctx = new TimeKeepEntities())
{
var qLoggedIn = from r in ctx.tblTimeRecords
where (r.tblEmployee.Active && !r.ClockOut.HasValue) || System.Data.Objects.EntityFunctions.DiffDays(r.ClockOut, DateTime.Now)<30
select new { Name = r.tblEmployee.Last + ", " + r.tblEmployee.First, r.tblProject.ProjName, r.ClockIn, r.ClockOut };
dataGridView1.DataSource = qLoggedIn.ToList();
}
}
मैंने यह किया। बाध्यकारी सही था और मैं एक सेव बटन का उपयोग करते समय डेटाग्रिडव्यू से डेटा संपादित करने में सक्षम था: context.SaveChanges()। समस्या यह है कि जब मुझे डेटा की एक नई पंक्ति जोड़नी है या इसे हटा देना है। SaveChanges जब डेटाबेस में उन प्रकार के परिवर्तन डेटाबेस में परिलक्षित नहीं होते हैं। शायद मैं कुछ संपत्ति सेट भूल रहा हूँ ...? ¿ –
मुझे एक ही समस्या @ AlejandrodelRío मिल रही है। अब मैं यह देखने के लिए कि क्या आपने इसे हल किया है, अपने सभी प्रश्नों और उत्तरों को मकड़ी देने जा रहा हूं। मुझे शुभकामनाएँ दें! – Robino
@ रोबिनो मैंने इसका उत्तर नहीं दिया है, लेकिन यह अपमान आपको डेटाग्रिडव्यू से सीधे वस्तुओं को जोड़ने या हटाने में मदद नहीं करेगा। इसके बजाय आपको एक बाइंडिंगलिस्ट <ऑब्जेक्ट टॉशोइनडेटाग्रिड> बनाना है, जहां ऑब्जेक्ट टॉशोइन इनडेटाग्रिड उन ऑब्जेक्ट्स के साथ एक ऑब्जेक्ट है जिन्हें आप दिखाना चाहते हैं और इसमें डेटाबेस इकाई का एक उदाहरण है। आपको सभी "सेट" में अधिसूचनाप्रॉपर्टींग विधि भी जोड़नी होगी। इस तरह परिवर्तन ऑब्जेक्ट और डेटाबेस पर दिखाई देंगे। मैं इसे एक उत्तर में समझाऊंगा। –