使用来自WebAPI的新datacontext未找到新添加的数据

时间:2013-09-10 17:53:00

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

所以我在WebAPI控制器中有这个方法。

public HttpResponseMessage Post(Model model)
{
   using(var dc = new DataContext())
   {
      dc.MyData.Add(model);
      dc.SaveChanges();
   }   
   //logic that requires the data to be saved first
   using(var dc = new DataContext())
   {
      dc.MyData.Find(model.ID); //this returns null, even tho in the DB I see my model get added to MyData
   }
}

第一个using语句保存到数据库,但第二个using语句找不到新添加的数据。在普通的MVC控制器中,第二个using语句按预期工作。

第二个using语句是否无法从WebAPI中找到MyData记录?

1 个答案:

答案 0 :(得分:0)

在Entity Framework的幕后生成ID。你正在使用的ID可能为0,因为你从参数得到它。'

如果Add方法成功,上面的这句话应该返回插入的最后一项,这就是你想要的:

using(var dc = new DataContext())
{
  var myModel = dc.MyData.Last();
}