दिलचस्प पोस्ट
एंड्रॉइड स्टूडियो में मैं एक पुस्तकालय परियोजना कैसे जोड़ूं? आईओएस में दूरस्थ सूचना और मूक सूचना के बीच अंतर क्या है? आयात एंड्रॉइड। समर्थन हल नहीं किया जा सकता ऑपरेटर <और कठोर कमजोर आदेश जावास्क्रिप्ट प्रदर्शन लंबी चलती कार्य कम नमूना आकार का उपयोग करने के बावजूद बिटमैपफिचर जावा में $ 0 (प्रोग्राम का नाम)? मुख्य वर्ग की खोज करें? JTable में एक विभक्त के रूप में एक खाली कॉलम का उपयोग करना Google मानचित्र – एक्सटर्न जेएसन से कई मार्कर जावास्क्रिप्ट में केस असंवेदनशील स्ट्रिंग प्रतिस्थापन? एक अल्पविराम का उपयोग करके NSString को विभाजित करें सीएक्सईक्सेशन त्रुटि 80040154 की मरम्मत कैसे करें? ब्रॉडकास्ट रिसीवर का उपयोग करके ब्लूटूथ स्टेटस का पता लगाने के लिए कैसे? आवाज मान्यता कुछ सेकंड के बाद सुनने बंद हो जाता है Jquery में सभी चयनित चेकबॉक्स VALUES प्राप्त करने का सर्वोत्तम तरीका

इकाई फ़्रेमवर्क: "अपॉइंटमेंट अपडेट, डालें, या हटाएं कथन की एक अप्रत्याशित संख्या (0) से प्रभावित है।"

मैं ग्रिड नियंत्रण को पॉप्युलेट करने के लिए इकाई फ़्रेमवर्क का उपयोग कर रहा हूं। कभी-कभी जब मैं अपडेट करता हूं तो मुझे निम्न त्रुटि मिलती है:

स्टोर अपडेट, डालें, या हटाएं, एक अनपेक्षित संख्या पंक्तियों (0) को प्रभावित करता है। संस्थाओं को लोड किया गया था क्योंकि संस्थाओं को संशोधित या हटा दिया गया हो सकता है। ऑब्जेक्टस्टेट प्रबंधक प्रविष्टियों को ताज़ा करें

मुझे यह पता नहीं चल सकता कि यह कैसे पुन: उत्पन्न करे। लेकिन इसके साथ ऐसा कुछ हो सकता है कि मैं कैसे अद्यतन करता हूं क्या किसी ने इसे देखा है या क्या किसी को पता है कि त्रुटि संदेश क्या है?

संपादित करें: दुर्भाग्यवश मैं इस समस्या को पुनर्निर्मित करने के लिए स्वतंत्रता से नहीं रह रहा हूं क्योंकि मैं इस परियोजना से आगे निकल रहा हूं और मुझे याद नहीं है कि अगर अंत में मुझे कोई हल मिल गया है, अगर दूसरे डेवलपर ने इसे तय किया है या इसके आसपास काम किया है। इसलिए मैं किसी भी जवाब को स्वीकार नहीं कर सकता

Solutions Collecting From Web of "इकाई फ़्रेमवर्क: "अपॉइंटमेंट अपडेट, डालें, या हटाएं कथन की एक अप्रत्याशित संख्या (0) से प्रभावित है।""

यह एक सुविधा का पक्ष-प्रभाव है जिसे आशावादी संगामिति कहा जाता है।

एंटिटी फ्रेमवर्क में इसे बंद / बंद करने के बारे में 100% निश्चित नहीं है लेकिन मूल रूप से यह आपको बता रहा है कि जब आप डेटा को डाटाबेस से निकाल लेते हैं और जब आप अपने परिवर्तनों को सहेजते हैं, तो किसी और ने डेटा बदल दिया है (जिसका मतलब था जब आप गए इसे बचाने के लिए वास्तव में 0 पंक्तियों को अपडेट किया गया है)। एसक्यूएल शब्दों में, उनकी update क्वेरी में where पंक्ति में प्रत्येक फ़ील्ड का मूल मान होता है, और अगर 0 पंक्तियों को प्रभावित होता है, तो यह जानता है कि कुछ गलत हो गया है।

इसके पीछे का विचार यह है कि आप एक ऐसे बदलाव को ओवरराइट नहीं करेंगे, जो आपके आवेदन को नहीं पता था – यह मूल रूप से आपके सभी अपडेटों पर .NET द्वारा फेंक दिया गया छोटा सुरक्षा उपाय है।

यदि यह सुसंगत है, तो यह आपके अपने तर्क के भीतर हो रहा है (उदाहरण: आप वास्तव में डेटा को अपने आप में एक अन्य विधि में अपडेट और अपडेट के बीच अपडेट कर रहे हैं), लेकिन यह दो अनुप्रयोगों के बीच बस एक दौड़ की स्थिति हो सकती है

मैं इस में भाग गया और यह संस्था की आईडी (कुंजी) फ़ील्ड के कारण नहीं होने पर होता था। इस प्रकार जब संदर्भ डेटा को सहेजने के लिए गया, यह आईडी = 0 नहीं पा सका। अपने अद्यतन कथन में एक ब्रेक प्वाइंट डालना सुनिश्चित करें और सत्यापित करें कि इकाई की आईडी सेट की गई है।

पॉल Bellora की टिप्पणी से

मुझे इस सटीक समस्या थी, क्योंकि .cshtml संपादन पृष्ठ में छुपी हुई आईडी इनपुट को शामिल करने के लिए भूल गए

वाह, बहुत सारे उत्तर, लेकिन मुझे यह त्रुटि मिलती है जब मैंने कुछ अलग किया जो कि किसी और ने उल्लेख नहीं किया है

यदि आप एक नई ऑब्जेक्ट बनाते हैं और ईएफ को बताते हैं कि यह EntityState.Modified का उपयोग करके संशोधित है, तो यह इस त्रुटि को फेंक देगा क्योंकि यह डाटाबेस में मौजूद नहीं है। यहां मेरा कोड है:

 MyObject foo = new MyObject() { someAttribute = someValue }; context.Entry(foo).State = EntityState.Modified; context.SaveChanges(); 

हां, यह मूर्ख दिखता है, लेकिन यह उठता है क्योंकि प्रश्न में जिस पद्धति का उपयोग किया गया था उस पर पहले से बना दिया गया है, अब इसमें कुछ someValue पास है और इसे foo खुद बनाता है

आसान तय करने के लिए, बस EntityState.Modified को परिवर्तित करें। EntityState.Modified को EntityState.Added या उस पूरी लाइन को बदलें:

 context.MyObject.Add(foo); 

मुझे यह वही डरा हुआ त्रुटि का सामना करना पड़ रहा था … 🙂 तब मुझे एहसास हुआ कि मैं एक को सेट करना भूल रहा था

@Html.HiddenFor(model => model.UserProfile.UserId)

ऑब्जेक्ट की प्राथमिक कुंजी के लिए अद्यतन किया जा रहा है! मैं यह सरल, लेकिन बहुत ही महत्वपूर्ण चीज़ भूल गया हूं!

वैसे: HiddenFor एएसपी.नेट एमवीसी के लिए है

जांचें कि क्या आप GridView में "DataKeyNames" विशेषता भूल गए थे। यह तब चाहिए जब GridView में डेटा को संशोधित करना होगा

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.datakeynames.aspx

मुद्दा दो चीजों में से किसी एक के कारण होता है: –

  1. आपने एक या अधिक संपत्तियों के साथ एक पंक्ति को अपडेट करने की कोशिश की है Concurrency Mode: Fixed .. और आशावादी संवाहक ने डेटा को सहेजने से रोका। अर्थात। कुछ ने सर्वर डाटा प्राप्त करने के समय के बीच पंक्ति डेटा को बदल दिया और जब आप अपना सर्वर डेटा सहेजा था
  2. आपने एक पंक्ति को अपडेट करने या हटाने की कोशिश की लेकिन पंक्ति मौजूद नहीं है। फिर से प्राप्त करने के बीच डेटा को बदलते हुए किसी व्यक्ति का दूसरा उदाहरण (इस मामले में, हटाने) या बचाने के लिए आप एक ऐसा क्षेत्र अपडेट करने की कोशिश कर रहे हैं जो एक पहचान (यानी StoreGeneratedPattern = Computed ) नहीं है और वह पंक्ति मौजूद नहीं है ।

मुझे एक ही समस्या थी और @ वेबट्रिफ्यूज़ के उत्तर ने समाधान खोजने में मदद की थी

मेरा मॉडल इकाई आईडी पर Bind(Exclude) विशेषता का उपयोग कर रहा था जो एचटीटीपी पोस्ट पर शून्य होने के लिए इकाई की आईडी का मूल्य पैदा कर रहा था।

 namespace OrderUp.Models { [Bind(Exclude = "OrderID")] public class Order { [ScaffoldColumn(false)] public int OrderID { get; set; } [ScaffoldColumn(false)] public System.DateTime OrderDate { get; set; } [Required(ErrorMessage = "Name is required")] public string Username { get; set; } } } 

मुझे एक ही समस्या थी, मैं समझता हूं कि रोवर्सन के कारण होता है जो शून्य था। जांचें कि आपका आईडी और आपके रोव संस्करण रिक्त नहीं हैं

अधिक जानकारी के लिए इस ट्यूटोरियल को देखें

http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/handling-concurrency-with-the-entity-framework-in-an-asp-net-mvc-application

संपादन में दृश्य के छिपे हुए क्षेत्र के रूप में इकाई या प्राथमिक कुंजी शामिल है

अर्थात

  @Html.HiddenFor(m => m.Id) 

जो समस्या को हल करता है

इसके अलावा यदि आपके मॉडल में गैर-उपयोग किए गए आइटम शामिल हैं तो इसमें भी शामिल है और नियंत्रक को पोस्ट करते हैं

आपको प्राथमिक कुंजी की एक बाउंडफ़िल्ड को स्पष्ट रूप से शामिल करना होगा। यदि आप उपयोगकर्ता को प्राथमिक कुंजी नहीं देखना चाहते हैं, तो आपको इसे सीएसएस के माध्यम से छुपाना होगा:

  <asp:BoundField DataField="Id_primary_key" ItemStyle-CssClass="hidden" HeaderStyle-CssClass="hidden" /> 

जहां 'छिपी' सीएसएस में एक वर्ग है, जिसका प्रदर्शन 'कोई नहीं' पर सेट किया गया है।

मैं भी इस त्रुटि पर आया था जिस समस्या से यह निकला था वह उस तालिका पर ट्रिगर के कारण हुआ था जिसे मैं सहेजने की कोशिश कर रहा था। उत्प्रेरक 'INSERT OF INSTERAD' का अर्थ है जिसका अर्थ है कि तालिका में कभी भी 0 पंक्तियाँ डाली गई हैं, इसलिए त्रुटि सौभाग्य से, ट्रिगर कार्यक्षमता गलत हो सकती है, लेकिन मुझे लगता है कि यह एक मान्य ऑपरेशन हो सकता है जिसे किसी भी तरह कोड में संभाला जाना चाहिए। उम्मीद है कि यह किसी एक दिन में मदद करता है

बस सुनिश्चित करें कि टेबल और फॉर्म दोनों में प्राथमिक कुंजी और edmx अपडेट किया गया है।

मैंने पाया कि अद्यतन के दौरान कोई भी त्रुटि आमतौर पर निम्न कारण होती है: – तालिका में कोई प्राथमिक कुंजी नहीं – संपादित करें दृश्य / प्रपत्र में कोई प्राथमिक कुंजी (उदा। @Html.HiddenFor(m=>m.Id )

  @Html.HiddenFor(model => model.RowVersion) 

मेरी रौशनी निरर्थक थी, इसलिए इसे इस मुद्दे को जोड़ना पड़ा जो मेरी समस्या का समाधान करता था

मुझे यह वही त्रुटि मिलती है क्योंकि पीके का एक अंश एक समय-समय कॉलम था, और रिकॉर्डिंग दिनांक का इस्तेमाल किया गया था। अब उस कॉलम के मान के रूप में। इकाई ढांचा मिलिसेकंड की सटीकता के साथ मूल्य सम्मिलित करेगा, और फिर इसे मिलीसेकंड परिशुद्धता के साथ भी डाला गया मान खोजें। हालांकि SqlServer ने दूसरे परिशुद्धता के लिए मूल्य को गोल किया था, और इस प्रकार इकाई ढांचा मिलिसेकंड सटीक मूल्य को खोजने में असमर्थ था।

समाधान डालने के पहले डेटटाइम से मिलीसेकंड को छोटा करना था।

मुझे उस त्रुटि मिली जब मैं डीबी (रोब में) में कुछ पंक्तियों को हटा रहा था, और एक ही तालिका में नए को जोड़ रहा था।

मेरे लिए समाधान, गतिशीलता के लिए, प्रत्येक लूप चलना में एक नया संदर्भ बना

मुझे भी यही समस्या थी। मेरे मामले में मैं प्राथमिक कुंजी को अपडेट करने की कोशिश कर रहा था, जिसे अनुमति नहीं है।

यदि आप "edmx फ़ाइल" में अपने एडीएमएक्स फ़ाइल में मानचित्रण बनाने का प्रयास कर रहे हैं, तो यह इस त्रुटि का परिणाम हो सकता है आपके एडीएमएक्स में दी गई इकाई के लिए मैपिंग विवरण में स्थित डालें, अपडेट और डिलीट करने के लिए फ़ील्ड साफ़ करें, और इसे काम करना चाहिए। मुझे आशा है कि मैं इसे स्पष्ट कर दिया।

यह भी होगा यदि आप एक अद्वितीय बाधा स्थिति में सम्मिलित करने का प्रयास कर रहे हैं, यानी यदि आपके प्रति नियोक्ता के पास केवल एक ही प्रकार का पता हो और आप उसी नियोक्ता के साथ उसी प्रकार का एक दूसरा सम्मिलित करने का प्रयास करते हैं, तो आपको एक ही समस्या मिल जाएगी ।

या

यह भी हो सकता है कि यदि सभी ऑब्जेक्ट गुण जो सौंपा गया था, उन्हें समान मूल्यों के साथ सौंपा गया था जैसा कि पहले था।

  using(var db = new MyContext()) { var address = db.Addresses.FirstOrDefault(x => x.Id == Id); address.StreetAddress = StreetAddress; // if you are assigning address.City = City; // all of the same values address.State = State; // as they are address.ZipCode = ZipCode; // in the database db.SaveChanges(); // Then this will throw that exception } 

अच्छी तरह से मुझे यह एक ही मुद्दा है लेकिन यह मेरी अपनी गलती के कारण था। असल में मैं इसे जोड़ने के बजाय एक वस्तु को बचा रहा था। तो यह संघर्ष था

एक एसक्यूएल सर्वर पर्यावरण में इस समस्या को डीबग करने का एक तरीका है कि एसक्यूएल प्रोफाइलर का उपयोग आपकी एसक्यूएल सर्वर की प्रतिलिपि में शामिल है, या एक्सप्रेस संस्करण का उपयोग कर नीचे दिए गए लिंक से CodePlex से मुफ्त में एक्सप्रेस प्रोफाइलर की प्रति प्राप्त करें:

एक्सप्रेस प्रोफाइलर

एसक्यूएल प्रोफाइलर का उपयोग करके आप डीबी को ईएफ द्वारा भेजे जा रहे सभी चीजों तक पहुंच प्राप्त कर सकते हैं। मेरे मामले में यह राशि थी:

 exec sp_executesql N'UPDATE [dbo].[Category] SET [ParentID] = @0, [1048] = NULL, [1033] = @1, [MemberID] = @2, [AddedOn] = @3 WHERE ([CategoryID] = @4) ',N'@0 uniqueidentifier,@1 nvarchar(50),@2 uniqueidentifier,@3 datetime2(7),@4 uniqueidentifier', @0='E060F2CA-433A-46A7-86BD-80CD165F5023',@1=N'I-Like-Noodles-Do-You',@2='EEDF2C83-2123-4B1C-BF8D-BE2D2FA26D09', @3='2014-01-29 15:30:27.0435565',@4='3410FD1E-1C76-4D71-B08E-73849838F778' go 

मैं इसे SQL सर्वर में एक क्वेरी विंडो में चिपकाता हूं और इसे निष्पादित करता हूं। यकीन है कि, हालांकि यह चल रहा है, इस रिकॉर्ड से 0 रिकॉर्ड प्रभावित हुए थे इसलिए ईएफ द्वारा लौटाई गई त्रुटि।

मेरे मामले में समस्या CategoryID से हुई थी।

आईडीएएफ द्वारा पहचान की गई कोई भी श्रेणी आईडी डेटाबेस से नहीं भेजी गई थी, इसलिए 0 रिकॉर्ड प्रभावित हुए थे।

यह ईएफ की गलती नहीं थी, बल्कि एक छोटी गाड़ी की अशक्त कोलाज़िंग "??" बयान एक व्यू नियंत्रक में जो डेटा स्तरीय को बकवास भेज रहा था

मॉडल-पहले से कोड-पहले को बदलने के बाद मुझे यह त्रुटि मिलनी शुरू हुई। मेरे पास कई थ्रेड हैं जो एक डेटाबेस को अपडेट करते हैं, जहां कुछ एक ही पंक्ति को अपडेट कर सकते हैं। मुझे नहीं पता है कि मॉडल का उपयोग करने में मेरे पास कोई समस्या क्यों नहीं थी, मान लीजिए कि यह एक अलग संगामिति डिफ़ॉल्ट का उपयोग करता है

इसे एक ही स्थान में जानने के लिए जिन स्थितियों के तहत यह हो सकता है, मैं निम्नलिखित अधिभार को अपने डीबीसीटीन्टेक्स्ट वर्ग में जोड़ा था:

 using System.Data.Entity.Core.Objects; using System.Data.Entity.Infrastructure; public class MyDbContext: DbContext { ... public int SaveChanges(bool refreshOnConcurrencyException, RefreshMode refreshMode = RefreshMode.ClientWins) { try { return SaveChanges(); } catch (DbUpdateConcurrencyException ex) { foreach (DbEntityEntry entry in ex.Entries) { if (refreshMode == RefreshMode.ClientWins) entry.OriginalValues.SetValues(entry.GetDatabaseValues()); else entry.Reload(); } return SaveChanges(); } } } 

इसके बाद जहां भी लागू होता है, वहां SaveChanges(true) कहा जाता है।

मैं इस पर टेलीरेक के रेड ग्राईड का इस्तेमाल कर रहा था। मेरे पास ग्रिडबाउंड कॉलम के रूप में प्राथमिक कुंजी थी जिसे केवल पढ़ने के लिए सेट किया गया था। यह ठीक काम करेगा यदि स्तंभ प्रदर्शित किया गया था = "गलत" लेकिन केवल पढ़ने के लिए = "सही" समस्या का कारण बना। मैंने इसे ग्रिडबाउंड कॉलम डिस्प्ले = झूठा बनाकर और डिस्प्ले के लिए एक अलग टेम्पलेट कॉलम को हल करके हल किया

 <telerik:GridBoundColumn HeaderText="Shouldnt see" Display="false" UniqueName="Id" DataField="Id"> </telerik:GridBoundColumn> <telerik:GridTemplateColumn HeaderText="Id" UniqueName="IdDisplay"> <ItemTemplate> <asp:Label ID="IDLabel" runat="server" Text='<%# Eval("Id") %>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> 
  public void Save(object entity) { using (var transaction = Connection.BeginTransaction()) { try { SaveChanges(); transaction.Commit(); } catch (OptimisticConcurrencyException) { if (ObjectStateManager.GetObjectStateEntry(entity).State == EntityState.Deleted || ObjectStateManager.GetObjectStateEntry(entity).State == EntityState.Modified) this.Refresh(RefreshMode.StoreWins, entity); else if (ObjectStateManager.GetObjectStateEntry(entity).State == EntityState.Added) Detach(entity); AcceptAllChanges(); transaction.Commit(); } } } 

बस एक ही समस्या थी

मैं ईएफ 6, कोड प्रथम + माइग्रेशन का उपयोग कर रहा हूं। समस्या यह थी कि हमारे डीबीए ने मेज पर एक बाधा बनाई जिससे त्रुटि फेंक गई।

उपरोक्त उत्तर में से कोई भी मेरी स्थिति और उसके समाधान को कवर नहीं करता।

कोड जहां त्रुटि MVC5 नियंत्रक में फेंक गई थी:

  if (ModelState.IsValid) { db.Entry(object).State = EntityState.Modified; db.SaveChanges(); // line that threw exception return RedirectToAction("Index"); } 

मुझे इस अपवाद प्राप्त हुआ जब मैं एक ऑडिशन को संपादित दृश्य से बचा रहा था। इसे फेंकने का कारण यह था कि जब मैं इसे सहेजने के लिए वापस चला गया था, मैंने उन गुणों को संशोधित किया था जो ऑब्जेक्ट पर प्राथमिक कुंजी का गठन किया था। इस प्रकार, अपने राज्य को संशोधित करने के लिए ईएफ के लिए कोई मतलब नहीं था – यह एक नई प्रविष्टि थी, पूर्व में सहेजी गई कोई भी नहीं

आप इसे या तो ए द्वारा हल कर सकते हैं) ऑब्जेक्ट को जोड़ने के लिए सहेज कॉल को संशोधित करें, या बी) बस संपादन पर प्राथमिक कुंजी नहीं बदलते मैंने बी किया था)

जब स्वीकार किए गए उत्तर में कहा गया कि " यह एक बदलाव को खत्म नहीं करेगा, जो आपके आवेदन को नहीं पता था ", मैं संदेहवादी था क्योंकि मेरी वस्तु नव निर्मित थी। लेकिन फिर यह पता चला है, एक INSTEAD OF UPDATE, INSERT- TRIGGER तालिका से जुड़ा था जो एक ही तालिका के एक गणना वाले कॉलम को अद्यतन कर रहा था।

एक बार जब मैं इसे बदलने के AFTER INSERT, UPDATE , यह ठीक काम कर रहा था।

हमारे मामले में इस त्रुटि को संकेतन के रूप में संशोधित के रूप में चिन्हित करने के कारण किया गया था, जब उनके गुणों में से कोई भी 'वास्तव में' परिवर्तित नहीं हुआ। उदाहरण के लिए जब आप एक संपत्ति के लिए समान मूल्य देते हैं, तो संदर्भ देख सकते हैं कि एक अद्यतन के रूप में जहां डेटाबेस नहीं है।

मूल रूप से हम एक संपत्ति को दूसरे गुणों से सम्मिलित मानों के साथ एक संपत्ति का पुनर्प्रेषण करने के लिए दौड़ा। बहुत सारे रिकॉर्ड के लिए जो कोई बदलाव नहीं था, लेकिन उन्हें संशोधित के रूप में ध्वजांकित किया गया। डीबी ने कई अपडेटेड ऑब्जेक्ट्स लौट दिए जो संभवत: अपवाद को ट्रिगर करते थे।

हम इसे संपत्ति के मूल्य की जांच करके और अलग-अलग अगर केवल एक नया बताते हुए हल किया।

उसी संदर्भ पर सहेजेचरों (गलत) और बाद में सेव चेंज () का उपयोग करते समय इस त्रुटि को मिलता है, एक यूनिटफ़ोवर्ज़ में जहां दो तालिकाओं (संदर्भ में) से कई पंक्तियाँ हटाई जा रही थीं (सेव चेंज (गलत) हटाए गए में से एक में। कॉलिंग फंक्शन में SaveChanges () को बुलाया जा रहा था …. इसका समाधान अनावश्यक सेव चेंज (गलत) को हटाने के लिए था।

मैं इसे केवल उसी मामले में फेंक दूँगा जब कोई समानांतर लूप में काम करते समय कोई इस मुद्दे पर चल रहा है:

 Parallel.ForEach(query, deet => { MyContext ctx = new MyContext(); //do some stuff with this to identify something if(something) { //Do stuff ctx.MyObjects.Add(myObject); ctx.SaveChanges() //this is where my error was being thrown } else { //same stuff, just an update rather than add } } 

मैंने इसे निम्नलिखित में बदल दिया:

 Parallel.ForEach(query, deet => { MyContext ctxCheck = new MyContext(); //do some stuff with this to identify something if(something) { MyContext ctxAdd = new MyContext(); //Do stuff ctxAdd .MyObjects.Add(myObject); ctxAdd .SaveChanges() //this is where my error was being thrown } else { MyContext ctxUpdate = new MyContext(); //same stuff, just an update rather than add ctxUpdate.SaveChanges(); } } 

यह निश्चित नहीं है कि यह 'सर्वश्रेष्ठ अभ्यास' है, लेकिन प्रत्येक समानांतर ऑपरेशन के द्वारा अपने मुद्दे का उपयोग करके मेरी समस्या तय की गई

आज भी मुझे एक समान समस्या थी, मैं इसे यहां दस्तावेज करूँगा, क्योंकि यह काफी आशावादी संगामिति त्रुटि नहीं है

मैं एक पुराने सिस्टम को एक नए डाटाबेस में परिवर्तित कर रहा हूं और इसके पास दो हज़ार संस्थाएं हैं जिन्हें मुझे नई प्रणाली पर स्क्रिप्ट करना पड़ा है। हालांकि, विवेक के साथ सहायता करने के लिए मैंने मूल अनन्य आईडी रखने का विकल्प चुना है और इसलिए इसे नए ऑब्जेक्ट में इंजेक्शन लगाने और फिर इसे बचाने की कोशिश कर रहा था।

मेरी समस्या यह थी कि मैंने मूल रिपॉजिटरी बनाने के लिए MVC मचान का उपयोग किया था और उनके पास UpdateOrInsert पद्धति में एक पैटर्न है, जो मूल रूप से यह देखने के लिए जांचता है कि क्या कुंजी विशेषता सेट होने से पहले यह नई इकाई जोड़ता है या संशोधित करने के लिए उसकी स्थिति में परिवर्तन करता है ।

क्योंकि गइद सेट था, यह एक ऐसी पंक्ति को संशोधित करने की कोशिश कर रहा था जो वास्तव में डेटाबेस में मौजूद नहीं था।

मैं उम्मीद करता हूं कि इससे किसी की मदद होगी!