हमने हाल ही में हमारे सॉफ़्टवेयर को .NET 4.0 और EF 4.0 (स्वयं ट्रैकिंग इकाइयों के बिना) (पूर्व .NET 3.5 SP1) में अपग्रेड किया है। अब पूर्व कार्य कोड में एक नया अपवाद उठाया गया है, जिसे हम समझ में नहीं आते हैं।EntityFramework 4.0: अमान्यऑपरेशन एक्सेप्शन: बहुविकल्पीय बाधा का उल्लंघन
हमारे पास निवासी नामक एक इकाई है, और एक अन्य इकाई जिसे रेसिडेंट एक्स्टेंशन कहा जाता है, जो पहले से ही बड़ी निवासी इकाई को 1 से (0/1) रिश्ते के साथ बढ़ाता है। निम्नलिखित सी # कोड हमारे आवेदन में एक नई इकाई उत्पन्न करता है:
Residents resident = new Residents()
{
IsNewResident = true,
ResidentImage = Settings.Default.ResidentCardDefaultMaleImage,
IsActive = true,
ResidentCanBeDeleted = true,
ResidentExtensions = new ResidentExtensions(),
ResidentMasterDataState = EvoState.Error,
ResidentBasicDataState = EvoState.Error,
ResidentBenefactorsDataState = EvoState.Error,
};
निम्नलिखित अपवाद सीधे इस बयान के बाद उठाया है:
बहुलता बाधा उल्लंघन किया है। संबंध VOCURA.EntityDataModels.EvocuraCarehomeManagementEntityModel.FK_ResidentExtensions_Residents 'के गुण' निवासी एक्सटेंशन 'की भूमिका बहुगुणता 1 या 0..1 है।
यह उत्पन्न कोड के सेटर में होता है:
[XmlIgnoreAttribute()]
[SoapIgnoreAttribute()]
[DataMemberAttribute()]
[EdmRelationshipNavigationPropertyAttribute("EVOCURA.EntityDataModels.EvocuraCarehomeManagementEntityModel", "FK_ResidentExtensions_Residents", "ResidentExtensions")]
public ResidentExtensions ResidentExtensions
{
get
{
return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<ResidentExtensions>("EVOCURA.EntityDataModels.EvocuraCarehomeManagementEntityModel.FK_ResidentExtensions_Residents", "ResidentExtensions").Value;
}
set
{
((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<ResidentExtensions>("EVOCURA.EntityDataModels.EvocuraCarehomeManagementEntityModel.FK_ResidentExtensions_Residents", "ResidentExtensions").Value = value;
}
}
एकमात्र समाधान मैं अभी तक मिल गया है पहले विस्तार के बिना निवासी इकाई प्रस्तुत करने के लिए है, और इस के बाद, स्थापित करने के साथ एक ResidentExtension बनाने विदेशी कुंजी (निवासी आईडी) और इसे संदर्भ में जोड़कर फिर से सबमिट करें। लेकिन यह इस तरह से काम नहीं किया है।
क्या कोई यह जानता है कि इस काम को पुराने तरीके से कैसे बनाया जाए?
जनवरी, क्या आपने कभी इस मुद्दे को हल करने के तरीके को हल किया था? –
दुर्भाग्य से नहीं। अभी भी मेरे प्रश्न के आखिरी हिस्से में पाया गया समाधान का उपयोग करना; ( – JanW