EntityFrameWork异常

/// <summary>

        /// Save entity'propertity which is not null

        /// </summary>

        /// <typeparam name="T"></typeparam>

        /// <param name="entity"></param>

        public void SetModifyColumnsWithOutNull<T>(T entity) where T : EntityObject

        {

            ObjectStateEntry stateEntry = null;

            bool isPresent = _ctx.ObjectStateManager.TryGetObjectStateEntry(entity, out stateEntry);

            if (stateEntry == null)

                _ctx.AttachTo(typeof(T).Name, entity);

}

错误:An object with the same key already exists in the ObjectStateManager. The ObjectStateManager cannot track multiple objects with the same key.

说明:我是把上下文放在线程的CallContext里面了,在调用这个方法之前,我查询过该对象,修改之后,调用这个方法进行更新,结果报上述错误。

疑问:既然从上下文中获取不到对象状态,那附加对象为何还是出错呢?请大虾们赐教小弟


一只甜甜圈
浏览 478回答 2
2回答

九州编程

看错误信息的意思是EF上下文中已经有当前这个实体了,所以不需要AttachTo,你把AttachTo这一行去掉试试
打开App,查看更多内容
随时随地看视频慕课网APP