2012-04-30 7 views
0

DBテーブルの要素を削除するメソッドを実装しようとしています。EntityFrameWorkでDb要素を削除する

次のコードは例外をスローしませんが、要素は実行後もテーブル内に残ります。

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を行ったので、それはもはやそのインスタンスを追跡していません。

関連する問題