2011-02-24 12 views
9

पहले पॉको कोड का उपयोग कर रहा हूँ। savechanges() के बाद मैं अंतिम डालने कैसे प्राप्त करूं?एएसपी एमवीसी savechanges से अंतिम डालने आईडी प्राप्त करें()

धन्यवाद

+0

आप क्या हासिल करने की कोशिश कर रहे थे? – JTew

उत्तर

8

के बाद आप संदर्भ में एक इकाई सहेज कर रखा है (SaveChanges())। पॉको पर आईडी प्रॉपर्टी को इकाई ढांचे द्वारा सेट किया जाना चाहिए।

यदि आप वास्तव में संशोधित इकाइयों के बारे में अधिक जानकारी चाहते हैं, तो आप उन्हें एंटीटी फ्रेमवर्क के ऑब्जेक्ट कॉन्टेक्स्ट द्वारा प्रदान ऑब्जेक्टस्टेट प्रबंधक में देख सकते हैं।

+0

मैं इस धारणा के तहत था कि वह वैश्विक तालिका परिप्रेक्ष्य से अंतिम सम्मिलन चाहता था, न कि एक एकल बचत ऑपरेशन। मै गलत हो सकता हूँ। – RPM1984

+0

हाँ, अब मुझे एक ही भावना मिलती है। –

+0

मैंने प्रश्न को दो बार पढ़ा है, और मुझे अभी भी लगता है कि वह अभी बनाई गई इकाई की आईडी जानना चाहता है। – tkalve

13

मैं इस तरह से है कि समस्या का समाधान:

मैक्स() के साथ

- आप मेज से पिछले आईडी प्राप्त कर सकते हैं

db.Products.Add(product); 
db.SaveChanges(); 
int lastProductId = db.Products.Max(item => item.ProductId); 

productId कुंजी है() और बढ़ा देते

+3

यह एक बहु-उपयोगकर्ता प्रणाली में एक समस्या देगा। यदि कोई अन्य उपयोगकर्ता आपके बाद 1 मिलियन सेकेंड का उत्पाद बचाता है, तो आपको उसका उत्पाद आईडी नंबर मिलेगा क्योंकि यह उस समय अधिकतम संख्या होगी। यह एक छोटा सा मौका है, लेकिन यह होगा! – alikuli

6
register = db.registers.CreateObject(); 
register.id = 0; 
register.customer = h.customer; 
register.employee = employee_created; 
register.created = DateTime.Now; 
db.registers.AddObject(register); 
db.SaveChanges(); 

//You can get the ID here 
int last_insert_id = register.id; 
+0

यह सही जवाब होना चाहिए – Kan

2
var newProduct = db.Product.Add(model); 
db.SaveChanges(); 
var productId = model.Id; 

यह स्वचालित रूप से उस ऑब्जेक्ट में जोड़ता है जिसे आप सहेज रहे हैं

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