C# Can';是否在实体框架中调用DeleteObject-缺少程序集引用?
我试图删除asp.net MVC3/Code first Entity Framework应用程序中的一个对象,但我似乎没有必要的选项,因为它会出现“不包含DeleteObject的定义”错误。任何人都知道我是否缺少程序集引用。以下是我的存储库代码:C# Can';是否在实体框架中调用DeleteObject-缺少程序集引用?,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我试图删除asp.net MVC3/Code first Entity Framework应用程序中的一个对象,但我似乎没有必要的选项,因为它会出现“不包含DeleteObject的定义”错误。任何人都知道我是否缺少程序集引用。以下是我的存储库代码: private dbContext db = new dbContext(); public void DeleteAccessDetails(AccessDetails details) { db.DeleteObject(detai
private dbContext db = new dbContext();
public void DeleteAccessDetails(AccessDetails details)
{
db.DeleteObject(details); //error here as DeleteObject isn't recognised
}
以下是我的推荐信:
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几乎没有显示任何选项—仅显示Dispose、Entry、SaveChanges和Set
编辑:以下是我访问存储库的代码:
Repository rep = new Repository();
AccessDetails paymentUpdate = rep.GetPaymentByID(item.AccessDetailsTableID);
rep.DeleteAccessDetails(paymentUpdate);
编辑2:这是“我的参考资料”文件夹的图像:
谢谢EF4.1中DbContext的文档似乎表明它没有在该类上包含delete方法:
这个问题看起来很相似-可能有帮助:
DbContext
没有DeleteObject()
方法。相反,使用Remove()
方法从DbSet
中清除对象,然后保存更改
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
您可以使用以下格式:
context.Entry(temp).State = EntityState.Deleted;
Remove()仅适用于Mvc 5中的DBContext..
删除列表时使用RemoveRange而不是DeleteObject
删除ange() 没错,我的references文件夹中没有System.Data.Objects。当我查看添加参考部分(.NET选项卡)时,它不在那里。干杯,戴夫-第二个链接提供了解决方案。如果存在不可为空的外键约束,则许多thanksRemove()将不起作用。