对于使用Context.SaveChanges()方法,数据库不更新
2011-08-12 21:58
302 查看
摘自:http://kb.cnblogs.com/page/98714/
/article/5811553.html
关键问题是最后的Update方法
DbSet对象并没有提供相应的接口,为什么呢?因为EF相信自己的Self Tracking能力。也就是说,EF认为把一个entity从context中加载出来,做一些变更,然后直接SaveChanges就可以了,不需要特意提供一个Update方法。
但是这里有一个前提,就是“entity是从context中加载出来”。如果entity是新new出来的呢?比如在MVC里,entity很可能是ModelBinder帮我们new出来的,context对它一无所知,直接SaveChanges显然不会有任何效果。
/article/5811553.html
关键问题是最后的Update方法
DbSet对象并没有提供相应的接口,为什么呢?因为EF相信自己的Self Tracking能力。也就是说,EF认为把一个entity从context中加载出来,做一些变更,然后直接SaveChanges就可以了,不需要特意提供一个Update方法。
但是这里有一个前提,就是“entity是从context中加载出来”。如果entity是新new出来的呢?比如在MVC里,entity很可能是ModelBinder帮我们new出来的,context对它一无所知,直接SaveChanges显然不会有任何效果。
相关文章推荐
- 关于使用dataAdapter.acceptChanges( )方法更新dataSet和数据库的问题
- ObjectContext的ApplyPropertyChanges()方法不能更新导航属性的解决办法
- 覆盖Django mysql model中save方法时碰到的一个数据库更新延迟问题
- Discuz批量替换帖子内容的方法(使用SQL更新数据库)
- Silverlight + WCF使用Linq to SQL以及ADO.NET Entity Data Model更新数据库子表方法
- ssh整合思想 Spring与Hibernate和Struts2的action整合 调用action添加数据库 使用HibernateTemplate的save(entity)方法
- MVC使用Entity Framework更新数据库时出现手工添加的校验信息丢失的解决方法使用partial类
- 【转】C#使用DataSet Datatable更新数据库的三种实现方法
- spring整合hibernate使用getHibernateTemplate().save()方法不能输入数据库
- C#使用DataSet Datatable更新数据库的三种实现方法
- 支持“***Context”上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库(http://go.microsoft.com/fwlink/?LinkId=238269)。
- 在Spring使用getHibernateTemplate().save()为何不能更新数据库
- Discuz批量替换帖子内容的方法(使用SQL更新数据库)
- 在使用ThinkPHP时候数据更新的时候,save()方法返回值为0的问题!!!!
- hibernate中更新数据库的各种方法以及save和update,saveOrUpdate的各自不同
- 关于Jpa使用Update方法进行更新操作,却没有同步到数据库的原因
- ADO.NET中使用getchanges方法提速(更新回数据库操作)
- C#使用DataSet Datatable更新数据库的三种实现方法
- 支持“XXXDbContext”上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库(http://go.microsoft.com/fwlink/?LinkId=2
- 关于asp.net网站发布后,使用登录控件和注册控件时出现“数据库只读,无法进行数据更新”的解决方法