2013-01-07 34 views
1

我想從表中刪除數據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; 
    } 
+0

取代這個,你可以請張貼堆棧跟蹤? – IronMan84

+0

你檢查了這個問題嗎? http://stackoverflow.com/questions/449740/error-the-object-cannot-be-deleted-because-it-was-not-found-in-the-objectstatem –

回答

0

刪除使用的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

相關問題