属性“waitingInvoiceAmount”是对象的一部分,不能被修改
来源:互联网 发布:html中调用javascript 编辑:程序博客网 时间:2024/06/08 13:25
最近用实体框架遇到的一个问题: 英文系统提示The property ‘WaitingInvoiceAmount' is part of the object's key information and cannot be modified或
中文系统提示:属性“waitingInvoiceAmount”是对象的一部分,不能被修改,
真是郁闷我了大半年啊,今天终于有所收获了,昨天看到一个帖子说的SaveChanges()方法有个参数SaveOption,之前是这样调用的SaveChanges(); 然后隔一段时间就会报这个错误,现在改用这个SaveChanges(System.Data.Objects.SaveOptions.AcceptAllChangesAfterSave); 那错误就没了,哈哈哈...哈哈哈...哈哈哈哈哈哈哈....
这应该是离开公司前的修改好的最一个bug...还是之前的书籍看的太少了,基础知识不扎实,以后多努力啊,这样基础去找份好工作,还是替你担忧啊....一定要努力...
详细解释是这样的:
SaveOptions枚举的内容:
·AcceptAllChangesAfterSave:在所有修改变化被保存后,AcceptAllChangesAfterSave()被调用,来重新设置跟踪。
·DetectChangesBeforeSave: 在修改变化被保存前,DetectChanges()方法被调用来同步对象的属性值。这些对象是在ObjectStateManager中被关联到context上的对象。
·None: 修改变化被保存不调用DetectChanges()或AcceptAllChangesAfterSave()方法。
SaveOptions重载应该用来确保要么DetectChanges在保存修改变化前被调用,要么AcceptAllChanges在保存修改变化到数据后被调用。为什么非要确保一个呢?DetectChanges用来保证所有的ObjectStateEntry的修改是明确的并同步了所有ObjectStateManager跟踪和管理的对象。AcceptAllChanges则允许所有关联到在ObjectStateManager中的实体上的修改变化。所以这样一来的结果是,确保了状态要么是detached要么是unchanged。而实际上,我们没有必要使用它们中的任意一个,因为这个枚举类型有一个更好的可以按位组合的FlagAttribute属性值。
- 属性“waitingInvoiceAmount”是对象的一部分,不能被修改
- Python_修改文件名的一部分
- 【iOS开发-40】不能直接修改对象的结构体属性的成员,那怎么办?
- Objective-C 【OC语法:不能修改 某个对象的 结构体属性的 成员】
- Hibernate entity属性修改导致对象的记录被修改
- 文件夹隐藏属性不能修改的解决办法
- DCOM的netprofm属性不能修改解决办法
- DP83848不能连接一部分电脑的问题
- 不能修改持久化对象的主键
- 窗体设置的一些基本属性(一部分)
- [Vue]不能使用索引直接修改数组,但可以使用索引更新对象数组内的属性
- ffmpeg-2.1 最新修改的一部分函数
- Action是控制器还是模型的一部分?
- 工作是生活的一部分(2)
- 代码是程序员生命的一部分
- JBoss AOP不再是JBoss7的一部分
- 家具行业是胶水行业重要的一部分
- VBA中被Find的对象只能是值,不能是引用
- hadoop常见错误及处理方法
- POJ 2388
- 关于Cmake
- Address already in use: JVM_Bind<null>:8080
- c#调用vb.net的项目
- 属性“waitingInvoiceAmount”是对象的一部分,不能被修改
- 远程访问xampp access forbidden
- 如何反编绎APK文件
- ( 转载)栈区,堆区,全局区,文字常量区,程序代码区 详解
- KUL3.0版学习手册
- Disruptor笔记(三)-处理模式
- 用递归方法实现两个链表head1和head2各自有序,请把它们合并成一个链表仍然有序。(c/c++)
- COMX安装注意事项
- 数据库范式那些事