2014-09-25 15 views
7

का उपयोग करते हुए अंतिम सम्मिलित आईडी कैसे प्राप्त करें मैं रिकॉर्ड जोड़ने के लिए ईएफ का उपयोग कर रहा हूं। मैं अंतिम सम्मिलित आईडी प्राप्त करना चाहता हूं। बाद मेरी कोड है:एंटीटी फ्रेमवर्क

string query = "INSERT INTO MyTable(PONumber, Status, UpdatedBy, UpdatedOn, CreatedOn) VALUES(@PO_NUMBER, '0', @STAFF, GETDATE(), GETDATE())"; 

parameterList = new List<object>(); 
parameterList.Add(new SqlParameter("@PO_NUMBER", poNumber)); 
parameterList.Add(new SqlParameter("@STAFF",staff)); 

parameters = parameterList.ToArray(); 

result = db.Database.ExecuteSqlCommand(query, parameters); 

query = "SELECT NewID = SCOPE_IDENTITY();"; 

var id = db.Lists.SqlQuery(query); 

मैं कैसे वर id से रिकॉर्ड पुनरावृति करते हैं?

+0

यदि आप ईएफ का उपयोग कर रहे हैं - क्यों आप पृथ्वी पर कच्चे एसक्यूएल के साथ 'INSERT' कर रहे हैं ?? ईएफ का ** पूरा बिंदु ** यह है कि आप कच्चे एसक्यूएल के बजाय ** ** अच्छी ** ऑब्जेक्ट्स से निपट सकते हैं! बस अपना 'मायऑब्जेक्ट' बनाएं, गुण सेट करें, इसे ईएफ संदर्भ में जोड़ें, 'सेव चेंज()' पर कॉल करें और आपकी 'पहचान' संपत्ति आपके लिए सेट है! एसक्यूएल के साथ कोई गड़बड़ नहीं है .. –

+0

@marc_s asp.net और EF पर पहली बार asp.net पर काम कर रहे थे। तो उदाहरण मैंने पाया कि मैंने अपनी जरूरत के आधार पर इसे लागू करने की कोशिश की। क्या आप उदाहरण के साथ पता लगाने में मेरी मदद कर सकते हैं कि आप किस बारे में बात कर रहे हैं? – Volatil3

उत्तर

17

यदि आप ईएफ का उपयोग कर रहे हैं, तो पूरा बिंदु यह है कि आप कच्चे एसक्यूएल के साथ चारों ओर झुकाव नहीं करना है। इसके बजाय, आप अपने डेटाबेस टेबल से संबंधित ईएफ द्वारा उत्पन्न ऑब्जेक्ट क्लास का उपयोग करते हैं।

तो आपके मामले में, मैं बहुत बल्कि कुछ इस तरह करना होगा:

// create the EF context 
using(YourEFContext ctx = new YourEFContext()) 
{ 
    // create a new "MyTable" class 
    MyTable newEntity = new MyTable(); 

    // set its properties 
    newEntity.PoNumber = poNumber; 
    newEntity.Status = 0; 
    newEntity.CreatedOn = DateTime.Now; 
    newEntity.UpdatedOn = DateTime.Now; 
    newEntity.UpdatedBy = staff; 

    // add new entity to EF context 
    ctx.MyTable.Add(newEntity); 

    // save changes to database 
    ctx.SaveChanges(); 

    // read out your newly set IDENTITY value 
    int newIdentityValue = newEntity.ID; 
} 

साफ वस्तु उन्मुख कोड - कोई गंदा एसक्यूएल बिल्कुल की जरूरत!

0

क्या होगा यदि आपको तालिका में सम्मिलित मॉडल पर सत्यापन को ट्रिगर किए बिना तालिका में सम्मिलित करने की आवश्यकता है? डीबी में आईई एक फ़ील्ड की आवश्यकता नहीं है और नल का एक डालने काम करेगा, लेकिन ईएफ मॉडल में यह एक आवश्यक फ़ील्ड है?

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