首页 新闻 会员 周边

Entity Framework 如何实现 数据另存为?

0
[已解决问题] 解决于 2012-11-23 09:09

        public ActionResult SaveAs(string navTabId,string itemId)
        {
            var entity = new UnitOfWork().LinkOnLineRepository.GetEntityByKey(new Guid(itemId));
            if(entity!=null)
            {
                entity.CoLinkOnLineId = ZdSoft.Framework.Common.NewGuid.NewComb();
                _unitOfWork.LinkOnLineRepository.Add(entity);
                _unitOfWork.Save();
            }
            return Failure(navTabId, "原记录不存在");
        }

比如我传入一个itemId, 查询出这条记录,然后仅修改主健再作保存。

会报

属性“CoLinkOnLineId”是对象的键信息的一部分,不能修改。 CoLinkOnLineId 是主键

简单的可以理解为我查询出记录,修改主键,怎么保存

问题补充:

实现代码是 修改Context 的状态为添加,再修改id,注意顺序不能反。最后保存 修改状态的代码用红色标示。

               

     _unitOfWork.Context.ObjectStateManager.ChangeObjectState(entity, EntityState.Added);
                    entity.CoLinkOnLineId = ZdSoft.Framework.Common.NewGuid.NewComb();
                    _unitOfWork.LinkOnLineRepository.Add(entity);
                    _unitOfWork.Save();

wunaigong的主页 wunaigong | 初学一级 | 园豆:4
提问于:2012-11-15 10:29
< >
分享
最佳答案
0

把 对象 状态修改为添加 而不是修改

奖励园豆:5
Qlin | 老鸟四级 |园豆:2403 | 2012-11-15 10:44
其他回答(2)
0

数据另存为???

jerry-Tom | 园豆:4077 (老鸟四级) | 2012-11-15 11:08
0

你可以把原来的先删掉,再保存现有地

netqiang | 园豆:405 (菜鸟二级) | 2012-11-16 10:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册