删除方法不会从数据库中删除任何项目。

时间:2012-06-21 04:16:25

标签: c# asp.net-mvc asp.net-web-api

让我们看看我是否可以逐步明确:

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

但是,我检查了我的数据库,没有删除任何项目。这是为什么?可能缺少某些信息,请告诉我您还需要什么。

我遇到调试问题,因为我不在我的元素中。如果您有调试方法,或者我可以查找某些事情/关键字以帮助解决我的问题,我将非常感激。

2 个答案:

答案 0 :(得分:5)

确保您针对Items提交对DataContext所做的更改:

Linq to SQL:

context.SubmitChanges();

Entity Framework:

context.SaveChanges();

答案 1 :(得分:1)

试试这个

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