所以我在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
记录?
答案 0 :(得分:0)
在Entity Framework的幕后生成ID。你正在使用的ID可能为0,因为你从参数得到它。'
如果Add方法成功,上面的这句话应该返回插入的最后一项,这就是你想要的:
using(var dc = new DataContext())
{
var myModel = dc.MyData.Last();
}