2010-10-13 24 views
5

का उपयोग कर रिकॉर्ड्स सिंक्रनाइज़ करें मैं इकाई फ्रेमवर्क में SQL सर्वर MERGE कथन की कार्यक्षमता प्राप्त करने का प्रयास कर रहा हूं।इकाई फ्रेमवर्क

डब्ल्यूसीएफ सेवा पर, मुझे क्लाइंट ऐप से रिकॉर्ड्स की एक सूची प्राप्त हो रही है। मैं किसी डेटाबेस फ़ील्ड के विरुद्ध सूची में सभी रिकॉर्ड्स में किसी विशेष फ़ील्ड की तुलना करना चाहता हूं।

- डीबी में एक मिलान रिकॉर्ड होना चाहिए, मुझे डीबी रिकॉर्ड में अन्य फ़ील्ड अपडेट करने की आवश्यकता है।

- कोई मैच नहीं होना चाहिए, मुझे पूरा रिकॉर्ड डालने की आवश्यकता है।

- क्या डीबी तालिका में कोई रिकॉर्ड हो सकता है जो सूची में नहीं है मुझे डीबी में रिकॉर्ड्स को हटाने की आवश्यकता है।

यहां कोड है जो मैं अब तक संघर्ष कर रहा हूं।

 


      //List of people from whatever source 
      List peopleList = GetListOfPeopleFromClient(); 

      using (var ctx = new PeopleEntities()) { 
       foreach (var person in peopleList) { 
        var dbPerson = ctx.People.FirstOrDefault(p => p.FirstName == person.FirstName); 
        if (dbPerson == null) { 
         dbPerson = new Person { FirstName = person.FirstName, LastName = person.LastName }; 
         ctx.People.AddObject(dbPerson); 
        } 
        else { 
         dbPerson.LastName = person.LastName; 
        } 
       } 
       //============ 
       //Yet to figure out how to do: 
       //delete from People where person.FirstName NOT in peopleList.FirstNames 
       //=========== 

       ctx.SaveChanges(); 
      } 

 

मेरा प्रश्न है: आप इसे कैसे प्राप्त करते हैं?

+0

आपका कोड विषय के बारे में जानकारी का एक बहुत कुछ मिल सकता है पहले से ही कुछ मैं हाल ही में एक बहुत ही इसी तरह की बात को प्राप्त करने के लिए इस्तेमाल की तुलना में अधिक सुंदर है। मैं इसके साथ खुश रहूंगा, जब तक कि ईएफ में विलय समारोह न हो, हम में से कोई भी हमारे बारे में नहीं जानता? – Chris

+0

@ क्रिस: धन्यवाद। मुझे डर था कि कोई मुझे यह बताने जा रहा था। मैं उम्मीद कर रहा था कि वहां कुछ 'लिनकीश' चाल थी जिसे मैं नहीं जानता था। –

उत्तर

1

मैं उस कार्य के लिए सिंक फ्रेमवर्क का उपयोग करूंगा। यह उस तरह के परिदृश्य के लिए पूरी तरह फिट लगता है।

आप पर MSDN

+0

हालांकि मेरी स्थिति में थोड़ी अधिक मात्रा में, सिंच फ्रेमवर्क सबसे उपयुक्त समाधान प्रतीत होता है। –

+1

मैं बिल्कुल वही करना चाहता हूं लेकिन कभी भी ऐसा कोई उदाहरण नहीं मिल सकता जो स्पष्ट रूप से प्रदर्शित करता है कि इसे कैसे किया जाए। क्या कोई मदद कर सकता है? –

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