Entity Object中往往需要在中间层返回一个Dto对象给前端,修改后将这个离线的Dto传回中间层更新,ApplyPropertyChanges方法很方便的帮我们把修改属性应用到上下文的对象(注意该对象必须是Modified或Unchanged),然后SaveChanged即可更新到数据库,然后实践过程发现无法更新导航属性,经过反复查资料做测试,需要做如下处理才能成功实现:

public void UpdateProduct(Product updated, Category category, Model model)
{
//如果product不是来自_context这个ObjectContext则需要使用下面语句
Product original = _context.Product.FirstOrDefault(a => a.ProductID == updated.ProductID);
if (category != null && original.ProductCategory.CategoryId != category.CategoryId) original.ProductCategory = category;
original.ProductModel = null; original.ProductModel = model;
if (original.EntityState == EntityState.Unchanged) _context.Attach(original);
_context.ApplyPropertyChanges(original.EntityKey.EntitySetName, updated); //导航属性无法直接应用,需要使用上面两句
_context.SaveChanges();
}

转载于:https://www.cnblogs.com/chriskwok/archive/2009/11/16/1604195.html

ObjectContext的ApplyPropertyChanges()方法不能更新导航属性的解决办法相关推荐

  1. 关于Entity Framework自动关联查询与自动关联更新导航属性对应的实体注意事项说明...

    一.首先了解下Entity Framework 自动关联查询: Entity Framework 自动关联查询,有三种方法:Lazy Loading(延迟加载),Eager Loading(预先加载) ...

  2. C#使用ListView更新数据出现闪烁解决办法

    C#使用ListView更新数据出现闪烁解决办法 在使用vs自动控件ListView控件时候,更新里面的部分代码时候出现闪烁的情况 如图: 解决以后: 解决办法使用双缓冲:添加新类继承ListView ...

  3. 安卓手机更新过程手机乱码_王者荣耀安卓更新更新时出现乱码解决办法

    王者荣耀1月14日进行版本大更新了,一般情况下大版本更新容易出问题的是苹果,但这次反过来是安卓,包括更新卡在45%.资源包升级失败.解析包出现问题等情况,这些都如何解决呢?小编马上就给大家分享一下解决 ...

  4. 关于谷歌浏览器被搜狗网址导航恶意劫持解决办法

    关于谷歌浏览器被搜狗网址导航恶意劫持解决办法 今天换了个实验室电脑用,发现浏览器被搜狗网址导航劫持了,就是 不论你怎么修改浏览器的初始打开网页,它重新打开时,永远都会打开搜狗网址导航.对于崇尚简洁的我 ...

  5. EPIC客户端 “在我们启动更新时请稍后”解决办法

    EPIC客户端 "在我们启动更新时请稍后"解决办法 已经尝试的方法:使用各种 加速器 标题解决问题的方法: 实例:

  6. jar中没有主清单属性【解决办法】

    <main><script type="text/javascript"> var blogSensitiveWords = ""; j ...

  7. 一些样式选不中或者添加了!important还是不起作用的属性样式解决办法

    在引用第三方ui库时,针对一些样式选不中或者添加了!important还是不起作用的属性样式解决办法: 在页面中单独再使用一个<style></style>标签,不加scope ...

  8. steam游戏一直连接服务器,steam无法连接到更新服务器快速有效解决办法

    <steam>是玩家们使用较多的一个游戏平台,部分玩家启动过程中会出现无法连接的情况,于是就会发出steam无法连接到更新服务器怎么办的疑问.下面为大家带来的是steam无法连接到更新服务 ...

  9. 打包时出现的异常。XXXXXXX-1.0-SNAPSHOT.jar中没有主清单属性的解决办法

    打包时异常信息如下: Some problems were encountered while building the effective model for com.llq:redis:jar:1 ...

最新文章

  1. 时间序列挖掘-预测算法-三次指数平滑法(Holt-Winters)——三次指数平滑算法可以很好的保存时间序列数据的趋势和季节性信息...
  2. 快速排序的递归和非递归的实现
  3. 微信模版消息 errmsg: 'invalid weapp pagepath hint: [OtU1OA0868a394]
  4. 一、linux搭建jenkins+github详细步骤
  5. 技术在于精,其次在于多
  6. Confluence介绍与使用
  7. oracle load data infile
  8. 2018年中小学计算机培训,2018年中小学网管员培训心得体会
  9. 华为光猫查看LOID密码
  10. QT5 QDateTime函数及时间格式说明
  11. 本地安装MySQL详细步骤
  12. 大数据工程师和数据分析师有何区别
  13. arduino烧写失败,改用progisp烧写
  14. 从我自己的角度总结一下移动互联网的技术
  15. 推广链接生成html操作流程,推广链接使用指引
  16. 阿呆喵广告过滤 v1.9.0.1 官网版
  17. 给大家分享一个可以查询sci期刊、中文CSCD期刊实时影响因子的网站
  18. 小小盲盒成就千亿港元市值,背后包含哪些产品思维
  19. SAP中采购合同和计划协议类型默认值的设定实例
  20. android videoview截屏,获取视频截图

热门文章

  1. 如何自建云存储平台?
  2. loadrunner-4-4事务摘要分析
  3. Win7提示1970-01-01 000000 is not a valid data怎么办.
  4. Java switch-case语句用法
  5. 杭电2094--产生冠军(拓扑排序)
  6. kinit无密码登录配置
  7. [JBoss] JNDI与JBossNS
  8. 代码工程flex不显示GIF图片问题
  9. 【Linux】部署memcache
  10. 【c++模板实现】二叉查找树