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

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

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

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 回答