错误:对象无法删除,因为它在ObjectStateManager中找不到。 c#
问题描述:
我想从表中删除数据Ent_El_Tags{entel_id,tag_id}
,当我将删除函数应用于我声明如下的关系但我适用于添加功能时遇到错误。错误:对象无法删除,因为它在ObjectStateManager中找不到。 c#
[HttpPost]
public List<Ent_El_Tags> AddTagsToElements([FromUri]ParamsClass parameters)
{
var relationships = new List<Ent_El_Tags>();
foreach (var el in parameters.element_ids)
{
foreach (var t_id in parameters.tag_ids)
{
var relationship = new Ent_El_Tags { entel_id = el, tag_id = t_id };
relationships.Add(relationship);
_context.Ent_El_Tags.Add(relationship);
}
}
_context.SaveChanges();
return relationships;
}
[HttpPost]
public List<Ent_El_Tags> DeleteTagsToElements([FromUri]ParamsClass parameters)
{
var relationships = new List<Ent_El_Tags>();
foreach (var el in parameters.element_ids)
{
foreach (var t_id in parameters.assigned_ids)
{
var relationship = new Ent_El_Tags { entel_id = el, tag_id = t_id };
relationships.Add(relationship);
_context.Ent_El_Tags.Remove(relationship);
}
}
_context.SaveChanges();
return relationships;
}
答
删除使用的EntityFramework的记录,你需要得到使用的EntityFramework从数据库中的记录,在该对象将是EF ObjectStateManager内。
var relationship = new Ent_El_Tags { entel_id = el, tag_id = t_id };
_context.Ent_El_Tags.Remove(relationship);
与
var relationship = _context.Ent_El_Tags.Where(x=>x.enterl_Id==el && x.tag_id==t_id).FirstOrDefault();
_context.Ent_El_Tags.Remove(relationship);
+0
非常感谢..现在它的工作。 – u2425
取代这个,你可以请张贴堆栈跟踪? – IronMan84
你检查了这个问题吗? http://*.com/questions/449740/error-the-object-cannot-be-deleted-because-it-was-not-found-in-the-objectstatem –