2012-04-30 2 views
0

Я пытаюсь реализовать метод, который удаляет элемент таблицы БД.Удалить элемент Db с EntityFrameWork

Следующий код не генерирует никаких исключений, но элемент все еще существует внутри таблицы после его выполнения.

namespace SuitTest_tt_content_2 
{ 
    class DBUtils 
    { 
     public static StandardResponse checkContent(long id) 
     { 
      using (OnlineRedesignIndexEntities DB = new OnlineRedesignIndexEntities()) 
      { 
       try 
       { 
        Console.WriteLine("   ************** TEST ADD_CONTENT **************   "); 
        var ContentId = (from elemento in DB.Contenuto where elemento.PK_Content_ID == id select elemento).First(); 

        if (ContentId.PK_Content_ID==id) 
        { 
         DB.Attach(ContentId); 
         DB.DeleteObject(ContentId); 
         DB.Detach(ContentId); 
        } 
        else 
        { 
         throw new Exception("Errore nel reperimento dell'elemento"); 
        } 
       } 
       catch (Exception e) 
       { 
        return new StandardResponse() { Success = false, Message = e.Message }; 
       } 

       try 
       { 
        DB.SaveChanges(); 
       } 
       catch (Exception e) 
       { 
        throw new Exception("Errore nel salvataggio modifiche sul DB." + e.Message); 
       } 
      } 

      return new StandardResponse() { Success = true }; 
     } 
    } 
} 

ответ

3

Вам не хватает DB.SaveChanges(). Вероятно, лучше всего задать этот вопрос на StackExchange.Com.

0

Удалите вызов отсоединения. Когда вы делаете SaveChanges, контекст просматривает все объекты, которые он отслеживает. Поскольку вы сделали Detach, он больше не отслеживает этот экземпляр.

Смежные вопросы