ID,Depth,RefreshCounter
样本记录:
ID Depth RefreshCounter 1 1 1 2 1 0 3 1 0 4 1 0
现在我需要做的是每当我刷新页面时,我需要在深度为1的数据库表中将此refreshcounter值增加1.
我在加载浏览页面时调用此方法:
@HTML.Action("IncrementRefreshcounter","Statistics",new { ID = 1}) //for eg:1,2,3,4
这是我的代码,它执行此 *** 作:
[ChildActionOnly] public ActionResult IncrementRefreshcounter(int ID) { using ( var context = new MyDBContext()) {//at each page refresh i would be passing different ID to my controller from vIEw.for eg 1,4 var data=context.Statistics.where(x=>x.Depth==1 && r.ID==ID).FirstorDefualt(); context.RefreshCounter++;//Increment here RefreshCounter. context.SaveChangesAsync(); return PartialVIEw("xxx") } }
当我的VIEw Loads.Problem是我第一次运行我的应用程序并调用此方法时,我正在调用此方法,它成功地将RefreshCounter更新为1,但之后每当我刷新页面并调用此方法时,它永远不会更新任何具有深度的记录的RefreshCounter = 1.
在我的示例记录中,您可以看到ID 1 with Depth 1具有值为1的刷新计数器,因为这是我第一次运行我的应用程序并且它已成功更新该值但在此之后它永远不会更新任何值,例如: ID 2深度1
它只递增1次RefreshCounter,但之后它永远不会增加该变量.
谁能告诉我什么问题是SaveChangesAsync?
解决方法 您必须等待保存,否则方法将继续,并且在保存更改之前,您的上下文将超出范围.您还必须使该方法异步.public **async** Task<ActionResult> IncrementRefreshcounter(int ID) { using ( var context = new MyDBContext()) {//at each page refresh i would be passing different ID to my controller from vIEw.for eg 1,4 var data=context.Statistics.where(x=>x.Depth==1 && r.ID==ID).FirstorDefualt(); context.RefreshCounter++;//Increment here RefreshCounter. await context.SaveChangesAsync(); } }总结
以上是内存溢出为你收集整理的c# – SaveChangesAsync不更新数据库表中的值全部内容,希望文章能够帮你解决c# – SaveChangesAsync不更新数据库表中的值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)