0

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 };
        }
    }
}
4

2 に答える 2

3

DB.SaveChanges()がありません。StackExchange.Comでこのタイプの質問をするのがおそらく最善です。

于 2012-04-30T16:14:24.313 に答える
0

Detach 呼び出しを削除します。SaveChanges を実行すると、コンテキストは追跡しているすべてのオブジェクトを調べます。Detach を実行したため、そのインスタンスは追跡されなくなりました。

于 2012-05-12T12:00:31.143 に答える