你好,
我正在使用EntityFramework来开发我的ASP.NET MVC网站,但是在更新数据时遇到了一些问题。
这是我的更新代码:
using (BissEntities context = new BissEntities())
{
if (adCategoryFilter.Id < 1)
context.AddToAdCategoryFilter(adCategoryFilter);
else
context.Refresh(System.Data.Objects.RefreshMode.ClientWins, adCategoryFilter);
if (context.SaveChanges() > 0)
return true;
}
return false;
执行context.Refresh时,我遇到了以下异常: 要刷新的对象集合中索引为0的元素具有空的EntityKey属性值或未连接到此ObjectStateManager。
Stacktrace : at System.Data.Objects.ObjectContext.RefreshCheck(Dictionary`2 entities, Object entity, EntityKey key)
at System.Data.Objects.ObjectContext.AddRefreshKey(Object entityLike, Dictionary`2 entities, Dictionary`2 currentKeys)
at System.Data.Objects.ObjectContext.RefreshEntities(RefreshMode refreshMode, IEnumerable collection)
at System.Data.Objects.ObjectContext.Refresh(RefreshMode refreshMode, Object entity)
at Biss.Models.FilterModel.UpdateCategoryFilter(AdCategoryFilter adCategoryFilter) in C:\Users\Snowman\Documents\Visual Studio 2010\Projects\Biss\Biss\Models\FilterModel.cs:line 86
这不是我第一次遇到这个问题了。起初我认为这可能与数据库中的关系有关,但在从受影响的表中删除这些内容后,相同的异常仍然存在。
adCategoryFilter来自哪里?
adCategoryFilter被实例化(new),然后用来自网站的ViewObject的数据填充。它确实具有所需的数据,如过滤器ID(将过滤器映射到正确的数据库行)。
请解释我为什么会遇到这个问题以及如何解决它。
最好的问候