我们将 EF 与 RIA 服务结合使用。一个简单的应用程序。加载项目列表,浏览/编辑/保存。 问题是某些更改不会持久保存到数据库中。
我有一个带有以下内容的模型
Person
...
string Name
bool IsActive
Customer : Person
...
string Address
bool IsLocal
对 Person 所做的更改会正确保存。
更改客户时,如果我将 IsLocal 值更改为 true,它会正确保存。如果我将其更改为 false,则更改不会持久保存到数据库中。
- 样板生成代码,无自定义
- 没有错误信息。就提交操作而言,一切顺利。
- 正确保存对地址的更改
- 如果我更改 Address 并设置 IsLocal,两者都会正确保存。
- 如果我更改地址并清除 IsLocal,地址会保存,但 IsLocal 保持设置。
- 对 IsActive 的更改(亲自)始终正确保存,无论是清除还是设置。
- 我在另一个解决方案中用不同的表重现了这个问题。
- 似乎是同样的问题,无法清除派生类中的 bool/bit 字段。
如果人们能提供任何帮助,我们将不胜感激。
谢谢,
艾伦。
最佳答案
好的,我有一个适合我的解决方案...
我替换了 Update 方法的生成代码:
this.ChangeSet.AttachAsModified( entity, this.ChangeSet.GetOriginal( entity ) );
对于
this.ChangeSet.Attach( entity );
this.ObjectContext.ChangeObjectState( entity, EntityState.Modified );
希望这对您有所帮助!
关于c# - RIA 服务/EF。对派生类中 bool 字段的更改不会保存到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6850100/