无法识别为刷新指定的对象

我有这样的更新function:

public void Update(HomeBanner homebanner) { homebanner.EnsureValid(); DataSource.DataContext.Refresh(System.Data.Linq.RefreshMode.KeepCurrentValues, homebanner); DataSource.DataContext.SubmitChanges(); } 

我写了一个更新控制器

 [AcceptVerbs(HttpVerbs.Post)] //[ValidateAntiForgeryToken] [ValidateInput(false)] public ActionResult ManageImages(int ? id,FormCollection form) { HomeBanner homebanner= BannerRepository.RetrieveById(id); this.TryUpdateModel(homebanner); string photoName = saveImage("photo"); if (photoName != string.Empty) homebanner.ImageID = photoName; BannerRepository.Update(homebanner); return RedirectToAction("list", "Admin"); } 

然后是观点:

  

Manage Images

它也获取数据,但更新步骤不成功:它标记在这里

 DataSource.DataContext.Refresh(System.Data.Linq.RefreshMode.KeepCurrentValues, homebanner); 

并抛出exception: 无法识别为刷新指定的对象。 我不知道为什么,我在调试时看到数据填充到对象。 Plz有人帮帮我!

检查那里的DataContext实例,也许你正在使用不存在原始对象的不同实例。

如果它不存在,则必须先将对象附加到数据上下文,然后调用refresh。

PS提示:制作模型或服务以与数据交互,在控制器中它看起来很乱;)’

我碰到这个错误,因为我试图更新一个刚刚创建的对象,该对象尚未存在于数据库中。