EF 4.0 更新数据时候的一个错误及其处理

错误如图:

修改下方法后可以进行更新了。但是中间多了一步查询

 /// <summary>
        /// 更新一个产品分类
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool UpdateBindClass(DataDicContent model)
        {
            var entry = DBENT.Entry(model);
            if (entry.State == EntityState.Detached)
            {
                var set = DBENT.Set<DataDicContent>();
                DataDicContent attachedProduct = set.Local.SingleOrDefault(p =>p.ID==model.ID);
                //如果已经被上下文追踪
                if (attachedProduct != null)
                {
                    var attachedEntry = DBENT.Entry(attachedProduct);
                    attachedEntry.CurrentValues.SetValues(model);
                }
                else //如果不在当前上下文追踪
                {
                    entry.State = EntityState.Modified;
                }
            }
            if (DBENT.SaveChanges() > 0)
            {
                return true;
            }
            return false;
        }

奇怪的是,不知道为什么用原来的方法会出错。

别的表的更新也是这么写的却没有错误。
暂时没时间深究错误原因,先找到解决方案再说,等有时间再深究这个问题。

posted @ 2015-08-03 16:13  code_dream  阅读(253)  评论(0编辑  收藏  举报