1

ステップバイステップで明確にできるかどうか見てみましょう:

namespace InventoryManager.Controllers
{
    public class InventoryController : ApiController
    {
        private readonly IInventoryRepository repository;

        //...

        public HttpResponseMessage DeleteItem(int id)
        {
            // Executes fine
            repository.Remove(id);
            return new HttpResponseMessage(HttpStatusCode.NoContent);
        }
    }
}

Removeで定義されたメソッドを実行していInventoryRepositoryます:

namespace InventoryManager.Models
{
    public class InventoryRepository : IInventoryRepository
    {
        private InventoryContext context;

        //...

        public void Remove(int id)
        {
            InventoryItem item = context.Items.Find(id);

            // Executes fine
            context.Items.Remove(item);
        }
    }
}

しかし、DBを確認したところ、アイテムが削除されていません。どうしてこれなの?情報が不足している可能性がありますので、他に必要な情報をお知らせください。

要素が不足しているため、これをデバッグする際に問題が発生します。これをデバッグする方法、または問題の解決に役立つ特定のもの/キーワードがあれば、ありがたいです。

4

2 に答える 2

5

あなたがあなたに対して行った変更をコミットしていることを確認ItemsしてくださいDataContext

LinqからSQLへ:

context.SubmitChanges();

エンティティフレームワーク:

context.SaveChanges();
于 2012-06-21T04:21:08.150 に答える
1

これを試して

public void Remove(int id)
        {
            InventoryItem item = context.Items.Find(id);
            context.Items.Remove(item);
            context.SaveChanges();
        }
于 2012-06-21T04:26:13.567 に答える