Sunday 15 July 2012

c# - Entity Framework not updating one-to-one entities -


मेरे पास ये मॉडल हैं:

  सार्वजनिक वर्ग का पता {सार्वजनिक इन्ट आईडी (प्राप्त); सेट;} सार्वजनिक स्ट्रिंग स्ट्रीट {get; सेट;} सार्वजनिक स्ट्रिंग हाउस नहीं {जाओ; सेट;}} पब्लिक क्लास ग्राहक {सार्वजनिक इन्ट आईडी (get; सेट;} सार्वजनिक स्ट्रिंग नाम {get; सेट;} सार्वजनिक int AddressId {get; सेट;} सार्वजनिक वर्चुअल पता पता {get; सेट;}}  

और मानचित्रण कक्षाएं:

  सार्वजनिक वर्ग पता मैप: EntityTypeConfiguration & lt; पता & gt; {सार्वजनिक पता मैप () {this.ToTable ("पते"); यह। हस्की (टी = & gt; टी। आईडी)। प्रॉपर्टी (टी = & gt; टीआईआईडी) .है। कॉलमनाम ("आईडी") .हाडेटाबेस जनरेट किया गया विकल्प (डाटाबेस जनरेटेडओपेशन। पहचान); यह। प्रॉपर्टी (टी = & gt; टी। स्ट्रीट)। हैकॉलमनाम ("सड़क"); यह। प्रॉपर्टी (टी = & gt; टी। हाउस नंबर)। कॉलमनाम ("हाउस_नो"); }} सार्वजनिक वर्ग ग्राहकमैप: EntityTypeConfiguration & lt; ग्राहक & gt; {सार्वजनिक ग्राहकमैप () {this.ToTable ("ग्राहकों"); यह। हस्की (टी = & gt; टी। आईडी)। प्रॉपर्टी (टी = & gt; टीआईआईडी) .है। कॉलमनाम ("आईडी") .हाडेटाबेस जनरेट किया गया विकल्प (डाटाबेस जनरेटेडओपेशन। पहचान); यह। प्रॉपर्टी (टी = & gt; टी .नाम।)। कॉलमनाम ("नाम"); यह। प्रॉपर्टी (टी = & gt; टी। एड्रेसआईडी) .HasColumnName ("id_address"); यह। एचएसओपेशनल (टी = & gt; टी। एड्रेस) .माइं () .हैअरवर्गेकी (टी = & gt; टी। एड्रेसआईडी); }}  

मैं CRUD संचालन के लिए GraphDiff का उपयोग कर रहा हूं।

पता के साथ एक नया ग्राहक जोड़ना ठीक काम करता है हालांकि, जब मैं निम्नलिखित करके एक ग्राहक का पता निकालना चाहता हूं:

  यदि (ग्राहक। पता! = नल) {यदि (ग्राहक.एडरेशन.आईएसएफ़टी ()) {यदि (ग्राहक। पता.आईडी & gt; 0) पता रिज़ॉजिटरी। हटाएं (ग्राहक। पता); ग्राहक। पता = नल; }} CustomerRepository.Update (ग्राहक);  

और रिपॉजिटरी में:

  सार्वजनिक ओवरराइड ग्राहक अपडेट (ग्राहक इकाई) {रिटर्न ((डीबीसीन्टेक्स्ट) डेटाकॉन्टेक्स) .UpdateGraph & lt; ग्राहक & gt; (इकाई, नक्शा = & gt; नक्शा। ओपनेडएन्टीटी (एक्स = & gt; एक्स। पता)); }  

ग्राहक के पते को डीबी में शून्य पर सेट किया गया है। हालांकि, पता डीबी से हटाया नहीं जा रहा है।

क्या यह मेरे मैपिंग क्लासेस में एक गलत कॉन्फ़िगरेशन है या क्या ग्राफडीफ ने अपेक्षा के अनुरूप व्यवहार नहीं किया है?


No comments:

Post a Comment