2011-07-20 7 views
6

मैं अपने एएसपीनेट एमवीसी 3/कोड-प्रथम इकाई फ्रेमवर्क एप्लिकेशन में किसी ऑब्जेक्ट को हटाने की कोशिश कर रहा हूं, लेकिन मुझे आवश्यक विकल्प नहीं दिखते हैं, क्योंकि इसमें "DeleteObject के लिए परिभाषा नहीं है" त्रुटि। किसी को पता है कि मैं एक असेंबली संदर्भ याद कर रहा हूँ।एंटीटी फ्रेमवर्क में DeleteObject को कॉल नहीं कर सकता - एक असेंबली संदर्भ गुम है?

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using MySite.Models; 
using System.Data; 
using System.Data.Objects; 
using System.Web.Mvc; 
using System.Data.Entity; 

मैं System.Data.Entity DeleteObject ऊपर लाने के लिए पर्याप्त हो गया होता होने सोचा, लेकिन IntelliSense शायद ही कोई विकल्प ला रहा है:

private dbContext db = new dbContext(); 

public void DeleteAccessDetails(AccessDetails details) 
{ 
    db.DeleteObject(details); //error here as DeleteObject isn't recognised 
} 

यहाँ मेरी संदर्भ हैं: यहाँ मेरी भंडार कोड है - केवल निपटान, एंट्री, SaveChanges और सेट

संपादित करें:

Repository rep = new Repository(); 
AccessDetails paymentUpdate = rep.GetPaymentByID(item.AccessDetailsTableID); 
rep.DeleteAccessDetails(paymentUpdate); 
: यहाँ भी भंडार तक पहुँचने के लिए मेरी कोड है

संपादित करें 2:

enter image description here

धन्यवाद

+0

ठीक है, मेरे पास System.Data.Objects मेरे संदर्भ फ़ोल्डर में नहीं है। जब मैंने संदर्भ संदर्भ अनुभाग (.NET टैब) देखा तो यह वहां नहीं था। –

उत्तर

4

EF4.1 में DbContext के लिए दस्तावेज़ को दिखाने के लिए उस पर एक हटाने विधि शामिल नहीं है कि लगता है: यहाँ मेरी संदर्भ फ़ोल्डर की एक छवि है उस वर्ग: -: MVC 3 EF 4.1 dbContext - Deleting one-to-many data object with non-nullable foreign-key relation

+0

चीयर्स डेव - उस दूसरे लिंक ने समाधान प्रदान किया। बहुत धन्यवाद –

23

...

यह सवाल समान दिखता है कुछ मदद की हो सकती हैमें DeleteObject() विधि नहीं है। इसके बजाय, Remove() विधि का उपयोग DbSet से ऑब्जेक्ट को साफ़ करने के लिए करें, फिर परिवर्तनों को सहेजें।

context.Entry(temp).State = EntityState.Deleted; 

निकालें() केवल Mvc 5 उपयोग RemoveRange बजाय DeleteObject में DBContext में काम करते हैं ..

+0

निकालें() गैर-शून्य-रहित विदेशी-कुंजी बाधा होने पर काम नहीं करेगा। – NoRMO

0

आप इस स्वरूप का उपयोग कर सकते हैं।

RemoveRange();

0

जबकि सूची को हटाने:

dbContext db = new dbContext(); // Arrange the context 

Department dept = db.Departments.Single(p => p.Id == "1"); // Find the item to remove 

db.Departments.Remove(dept); // Remove from the context 

b.SaveChanges(); // Delete from the database 
संबंधित मुद्दे