Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
LINQ实体框架-无法删除该对象,因为在ObjectStateManager中找不到该对象_Linq_Entity Framework - Fatal编程技术网

LINQ实体框架-无法删除该对象,因为在ObjectStateManager中找不到该对象

LINQ实体框架-无法删除该对象,因为在ObjectStateManager中找不到该对象,linq,entity-framework,Linq,Entity Framework,我使用的是实体框架。 我正在尝试从linq获取结果,然后对其执行删除操作,如下所示: IEnumerable<tblAVAL> tblval = db.tblVALs.Where(p => p.PgrID == prid); db.DeleteObject(tblval); db.SaveChanges(); 如何让它在返回超过1行的集合中删除 将集合传递给DeleteObject方法时,它会尝试映射集合对象,因为它是一个实体。您需要做的是迭代集合并

我使用的是实体框架。 我正在尝试从linq获取结果,然后对其执行删除操作,如下所示:

    IEnumerable<tblAVAL> tblval = db.tblVALs.Where(p => p.PgrID == prid);
    db.DeleteObject(tblval);
    db.SaveChanges(); 

如何让它在返回超过1行的集合中删除

将集合传递给DeleteObject方法时,它会尝试映射集合对象,因为它是一个实体。您需要做的是迭代集合并删除项

foreach( var tblav in db.tblVALs.Where(p => p.PgrID == prid))
    db.DeleteObject(tblav);

db.SaveChanges(); 

EntityFramwork不支持批量删除、更新和插入。具有Linq to Sql和EntityFramework的实现,但没有所有功能。也许所做的符合你的需要。

只是一个评论:你为什么称你的班级为“TBL”?你为什么把外键留在课堂上?
foreach( var tblav in db.tblVALs.Where(p => p.PgrID == prid))
    db.DeleteObject(tblav);

db.SaveChanges();