2011-07-20 22 views
6

Tôi đang cố xóa một đối tượng trong ứng dụng khung thực thi asp.net MVC3/Code-first Entity Framework của tôi, nhưng tôi dường như không có các tùy chọn cần thiết, vì nó sẽ trả về một "không chứa định nghĩa cho DeleteObject" lỗi. Bất cứ ai biết nếu tôi đang thiếu một tham chiếu lắp ráp. Đây là mã kho của tôi:Không thể gọi DeleteObject trong khung Entity - thiếu tham chiếu assembly?

private dbContext db = new dbContext(); 

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

Dưới đây là tài liệu tham khảo của tôi:

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; 

Tôi nghĩ có System.Data.Entity sẽ là đủ để đưa lên DeleteObject, nhưng IntelliSense là hầu như không mang lại bất kỳ tùy chọn - Vứt bỏ chỉ, nhập cảnh, SaveChanges và Thiết

Edit: đây cũng là mã của tôi để truy cập vào kho lưu trữ:

Repository rep = new Repository(); 
AccessDetails paymentUpdate = rep.GetPaymentByID(item.AccessDetailsTableID); 
rep.DeleteAccessDetails(paymentUpdate); 

Chỉnh sửa 2: Dưới đây là hình ảnh của thư mục tài liệu tham khảo của tôi:

enter image description here

Cảm ơn

+0

Phải đủ, tôi không có System.Data.Objects trong thư mục tham chiếu của mình. Khi tôi nhìn vào phần Thêm tham chiếu (tab .NET), nó không có ở đó. –

Trả lời

4

Các tài liệu cho DbContext trong EF4.1 dường như để chứng minh rằng nó không bao gồm một phương pháp xóa trên rằng lớp: http://msdn.microsoft.com/en-us/library/system.data.entity.dbcontext(v=vs.103).aspx ...

câu hỏi này trông tương tự - có thể là một số giúp đỡ: MVC 3 EF 4.1 dbContext - Deleting one-to-many data object with non-nullable foreign-key relation

+0

Chúc mừng Dave - liên kết thứ hai đã cung cấp giải pháp. Rất cám ơn –

23

DbContext không có phương thức DeleteObject(). Thay vào đó, hãy sử dụng phương thức Remove() để xóa đối tượng khỏi DbSet, sau đó lưu thay đổi.

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 
+0

Xóa() sẽ không hoạt động nếu có ràng buộc khóa ngoài không thể vô hiệu. – NoRMO

0

Bạn có thể sử dụng định dạng này:

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

Remove() chỉ làm việc trong DBContext ..

0

Trong MVC 5 sử dụng RemoveRange thay vì DeleteObject khi xóa danh sách.

RemoveRange();

Các vấn đề liên quan