我有一个(继承自以前的编码器)使用Entity Framework(6.1.3)的ASP.NET MVC3 webapi,我不相信它是正确执行的。主要是因为看似缺乏USING方法。
问题
我认为它没有正确执行的原因是因为这个put方法被调用很多(通过各种外部服务器上的计划任务)。通常census_df['original index'] = census_df.index
会返回id
。然后将再次运行并在下次运行计划任务时正确处理。
守则
Controller 500 internal server error
如下:
MyApiController
现在,存储库public class MyApiController : ApiController
{
static readonly IMyApiRepository myApiRepository = new MyApiRepository();
public HttpResponseMessage PutData(int id, int id2)
{
if(!myApiRespository.Update(id, id2))
{
return Request.CreateErrorResponse(HttpStatusCode.NotFound, "Error:Unable to Update");
}
else
{
return Request.CreateResponse(HttpStatusCode.OK);
}
}
}
如下
MyApiRepository
对我来说,数据库连接是永久打开的,并且有太多东西试图同时使用它。
public class MyApiRepository : IMyApiRepository
{
MyDBContext myContext;
public MyApiRepository()
{
myContext = new MyDBContext();
}
public bool Update(int id,int id2)
{
var myData = myContext.MyData.Where(x => x.id == id);
if (myData.Count() > 0)
{
MyData temp = myData.SingleOrDefault();
temp.Processed = true;
myContext.SaveChanges();
return true;
}
else
{
return false;
}
}
}
构造函数实际上应该为空
ApiRepository
和public MyApiRepository()
{
}
方法
Put
从而为每个请求打开一个连接?