2010-09-08 13 views
8

की आईडी प्राप्त करें मैं कई सब्रेकॉर्ड्स के साथ डेटाबेस में रिकॉर्ड डालने के लिए एक एमवीसी वेबफॉर्म का उपयोग कर रहा हूं। मेरे कोड-बैक में मैं पहले डेटा रिपोजिटरी का उपयोग कर एक नया मुख्य रिकॉर्ड बना रहा हूं। जोड़ें (xx)। अब मुझे 5 subrecords जोड़ने की जरूरत है जिन्हें नए बनाए गए रिकॉर्ड की आईडी चाहिए। मैं इसे कैसे प्राप्त कर सकता हूं?एएसपी.नेट एमवीसी अंतिम जोड़ा रिकॉर्ड

+2

कैसे अपने डाटा भंडार कार्यान्वित किया जाता है? इकाइयों के लिए लिंक? लिंक से एसक्यूएल? टाइप किए गए डेटासेट्स? कोड की आवश्यकता है – villecoder

+1

एमवीसी वेबफॉर्म एक ऑक्सिमोरॉन नहीं है? – Martin

+2

बस एक टिप्पणी: एएसपी.नेट एमवीसी के साथ कोड-बैक फाइलों का उपयोग न करें! – davehauser

उत्तर

23

मान लिया जाये कि xx अपने मॉडल है, और इसकी प्राथमिक कुंजी आईडी आप इस तरह अपने डाला रिकॉर्ड की पहचान प्राप्त कर सकते है:

// at this point xx.Id == null 
db.XX.AddObject(xx); 
db.SaveChanges(); 
// now: xx.Id > 0 
int id = xx.Id; 
1

आपको अपने व्यापार स्तर में किसी भी सत्यापन को निष्पादित करने के लिए, अपने सभी 5 रिकॉर्ड और मुख्य रूप से अपने डाटलियर को मुख्य रूप से सबमिट करना चाहिए। फिर, अपने डीएल के कार्यान्वयन के आधार पर, मुख्य रिकॉर्ड को सहेजें, आईडी लौटाएं, उपरोक्त पर मूल आईडी सेट करें और उन्हें सहेजें। यह सब एक ही लेनदेन के भीतर करें और आपको ठीक होना चाहिए।

कृपया अपनी डेटा एक्सेस परत पर अधिक जानकारी दें।

यदि एमएस एसक्यूएल सर्वर का उपयोग करते हैं, तो आप एक पहचान कॉलम में अंतिम पहचान मान डालने के लिए Scope_Identity() का उपयोग अपनी संग्रहीत प्रक्रिया के भीतर करेंगे। इस में आप उन्हें एक ही सत्र में जोड़ सकते हैं और NHibernate एसक्यूएल सही आईडी के साथ रिकॉर्ड डालने के लिए जिम्मेदार पैदा करने का ख्याल रखता है MSDN article

NHibernate का उपयोग कर देखें।

2

यदि आप एंटीटी फ्रेमवर्क जैसे ओआरएम का उपयोग कर रहे हैं तो आप रिकॉर्ड और संबंधित रिकॉर्ड बनाने में सक्षम होना चाहिए, संबंधित ऑब्जेक्ट को किसी ऑब्जेक्ट पर संग्रह में जोड़कर या उन्हें किसी भी तरह से सेट करके जोड़कर लिंक करें और फिर सेव को कॉल करें संदर्भ पर विधि। यह आपके लिए ids आदि के साथ सभी लिंकिंग करेगा।

आप डेटा एक्सेस कैसे कर रहे हैं?

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