का उपयोग EF5 के साथ कई वस्तुओं को ट्रैक नहीं कर सकते हैं।ऑब्जेक्टस्टेट प्रबंधक में एक ही कुंजी वाला एक ऑब्जेक्ट पहले से मौजूद है। ObjectStateManager जब डेटाबेस मेरी edmx साथ संग्रहीत procs का उपयोग करने के लिए एक इकाई नवीनीकृत करते समय एक मुद्दे में एक सामान्य भंडार पैटर्न और निर्भरता injenction बनाने और चलाने के लिए Ninject के साथ एक ही कुंजी
DbContextRepository.cs में मेरे अद्यतन है:
public override void Update(T entity)
{
if (entity == null)
throw new ArgumentException("Cannot add a null entity.");
var entry = _context.Entry<T>(entity);
if (entry.State == EntityState.Detached)
{
_context.Set<T>().Attach(entity);
entry.State = EntityState.Modified;
}
}
मेरी AddressService.cs से जो मेरे भंडार को वापस चला जाता रहा है:
public int Save(vw_address address)
{
if (address.address_pk == 0)
{
_repo.Insert(address);
}
else
{
_repo.Update(address);
}
_repo.SaveChanges();
return address.address_pk;
}
यह संलग्न हिट जब और यह EntityState.Modified त्रुटि के साथ pukes:
के साथ एक वस्तु एक ही कुंजी पहले से ही ObjectStateManager में मौजूद है। ऑब्जेक्टस्टेट प्रबंधक एक ही कुंजी के साथ एकाधिक ऑब्जेक्ट्स को ट्रैक नहीं कर सकता है।
मैं ढेर में और इंटरनेट पर और कुछ भी नहीं है कि यह समाधान करता है के साथ आ गए सुझावों में से कई के माध्यम से ध्यान दिया है। आसपास के किसी भी काम की सराहना की जाएगी।
धन्यवाद!
धन्यवाद। तो मैंने int आईडी {get; के साथ एक इंटरफेस आईईएनटीटी बनाया सेट; } तो सार्वजनिक ओवरराइड शून्य अद्यतन (टी इकाई) करने की कोशिश की जहां टी: IEntity लेकिन इसकी नहीं जहां पसंद टी: IEntity। यह भंडार वर्ग यानी सार्वजनिक वर्ग DbContextRepository में है: BaseRepository जहां टी: वर्ग कि अगर एक फर्क नहीं पड़ता। धन्यवाद! –
Juan
ऐसे मामले में वर्ग परिभाषा –
हम्म पर सीधे बाधा डाल .. अभी भी बहुत किस्मत नहीं होने चाहिए। मुझे आश्चर्य है अगर इसकी वजह से मैं एक edmx मॉडल का उपयोग कर रहा हूँ। लेकिन मैं वर्ग पर सीधे बाधा डालने के लिए के रूप में यह BaseRepository और IRepository लागू करता असमर्थ हूँ। इसके अलावा एडीएमएक्स में संस्थाएं विचारों से आ रही हैं और प्राथमिक कुंजी एड्रेस_पीके जैसी हैं। – Juan