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. python 函数递归一次增加一次变量_python3--函数(函数,全局变量和局部变量,递归函数)...
  2. SUN PORTAL 7.2安装在windows 的问题解决办法!
  3. python add argument list_python模块介绍- argparse:命令行选项及参数解析
  4. JavaScript中随着鼠标拖拽而移动的块
  5. mysql集群如何保障数据分布均匀_如何保证数据库集群时候,主从库一致性的问题?...
  6. MySQL中serial关键字的作用
  7. STM32学习笔记一一HEX文件和BIN文件格式
  8. c语言实现万年历程序
  9. python爬股票历史价格_【Python】利用ricequant获取上证指数以及所有股票历史价格数据...
  10. springboot中ehcache的使用
  11. 内网渗透系列:内网隧道之DNS隧道
  12. 80386汇编_全局描述表GDT介绍
  13. Allergo 无法修改单位
  14. hadoop学习路线
  15. voip linksys
  16. Q9.1 Ruan upp a staircase
  17. 通过python刷android步数,使用 Python 修改微信/QQ/支付宝运动步数
  18. 【Python】Pandas实用技能,数据筛选query函数详细介绍
  19. 麦当劳肯德基供应商使用变质过期肉:吃不死人
  20. php++i和i++区别_PHP和i,第1部分

热门文章

  1. 数组的合并,去重,排序
  2. Selenium碰到的异常记录
  3. shell编程之【告警系统】
  4. 王朔:中国文化沉淀了大量腐烂变质垃圾
  5. windows 2003 英文版支持中文显示、中文输入的设置方法
  6. [C++]变量和基本类型
  7. 好久不上来,发现这个世界变得真是快啊,都.NET 2.0 AJAX了~~
  8. WritableComparable排序的使用案例
  9. 大数据分析平台具备什么功能特点
  10. tensorflow没有这个参数_TensorFlow入门笔记(五) : 神经网络参数与TensorFlow变量