RIA服务/ EF.对派生类中的bool字段的更改没有保存到数据库中
本文关键字:保存 数据库 字段 bool EF 派生 RIA 服务 | 更新日期: 2023-09-27 18:03:38
我们将EF与RIA服务一起使用。一个简单的应用程序。加载项目列表,浏览/编辑/保存。问题是有些更改没有保存到数据库中。
我有一个模型如下
Person
...
string Name
bool IsActive
Customer : Person
...
string Address
bool IsLocal
对Person的更改正确保存。
当更改客户时,如果我将IsLocal值更改为true,它将正确保存。如果将其更改为false,则不会将更改持久化到数据库。
- 锅炉板生成代码,无自定义
- 没有错误消息。就提交操作而言,一切顺利。
- 更改地址正确保存
- 如果我改变地址并设置IsLocal,两者都正确保存。
- 如果我改变地址并清除IsLocal,地址保存,但IsLocal保持设置。
- 更改IsActive (in Person)总是正确保存,无论是清除还是设置。 我已经用不同的表在另一个解决方案中重新创建了这个问题。
- 似乎是同样的问题,不能清除bool/bit字段在派生类
任何人们能提供的帮助都会很感激。
谢谢,
艾伦。
好了,我找到了一个适合我的解决方案…
我将Update方法生成的代码替换为:
this.ChangeSet.AttachAsModified( entity, this.ChangeSet.GetOriginal( entity ) );
this.ChangeSet.Attach( entity );
this.ObjectContext.ChangeObjectState( entity, EntityState.Modified );
希望这对你有帮助!