0

所以我在 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第二条语句无法MyData从 WebAPI 中找到记录是否有原因?

4

1 回答 1

0

ID 是在实体框架的幕后生成的。您使用的 ID 可能为 0,因为您从参数中获取了它。'

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

using(var dc = new DataContext())
{
  var myModel = dc.MyData.Last();
}
于 2013-09-10T19:03:16.553 回答