Gle*_*eno 0 code-first entity-framework-4.1
我有一个基于Codefirst EF-4.1的程序.用户获取上下文并可以修改某些属性.用户完成后,我会快速完成
ChangeTracker.Entries().Any(e => e.State != EntityState.Unchanged);
Run Code Online (Sandbox Code Playgroud)
确定是否SaveChanges()需要a .如果我执行"SaveChanges()"调用,则所做的更改将持久保存到数据库中.
这适用于某些属性,不适用于其他属性.具体来说,它似乎适用于简单类型float和集合层次结构ObservableCollection.
难道我做错了什么?
是的,这是一个问题.有些关系没有被跟踪DbChangeTracker.独立协会和外键协会之间存在差异.在以下情况下跟踪对关系的更改:
如果出现以下情况,则不会跟踪对关系的更改:
没有跟踪独立关联是不正确的命名.跟踪这些更改但DbChangeTracker 不公开对这些更改的访问!您必须转换DbContext为ObjectContext并使用它ObjectStateManager来访问ObjectStateEntries代表独立的关联.
在这种情况下,最简单的事情就是SaveChanges始终打电话.如果不需要保存数据,它将不会执行任何数据库命令.
| 归档时间: |
|
| 查看次数: |
3530 次 |
| 最近记录: |