c# - RIA 服务/EF。对派生类中 bool 字段的更改不会保存到数据库

标签 c# silverlight entity-framework ria

我们将 EF 与 RIA 服务结合使用。一个简单的应用程序。加载项目列表,浏览/编辑/保存。 问题是某些更改不会持久保存到数据库中。

我有一个带有以下内容的模型

Person
   ...
   string Name
   bool IsActive


Customer : Person
   ...
   string Address
   bool IsLocal

对 Person 所做的更改会正确保存。

更改客户时,如果我将 IsLocal 值更改为 true,它会正确保存。如果我将其更改为 false,则更改不会持久保存到数据库中。

  1. 样板生成代码,无自定义
  2. 没有错误信息。就提交操作而言,一切顺利。
  3. 正确保存对地址的更改
    • 如果我更改 Address 并设置 IsLocal,两者都会正确保存。
    • 如果我更改地址并清除 IsLocal,地址会保存,但 IsLocal 保持设置。
  4. 对 IsActive 的更改(亲自)始终正确保存,无论是清除还是设置。
  5. 我在另一个解决方案中用不同的表重现了这个问题。
    • 似乎是同样的问题,无法清除派生类中的 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/

相关文章:

c# - FastMember 的 ISO-1 C# 语言规范错误

silverlight - 如何在 Ubuntu 12.0.4 中安装月光?

wpf - 使用mvvm是否存在任何成功的项目? (设计师观点)

c# - C# 中的泛型和继承

c# - Entity Framework 继承

c# - 检查给定字符串是否是用于转换 DateTime 的有效格式字符串

c# - GetTokenAsync 使用 auth0 在 ASP.NET Core 2.1 中返回 2 个受众

c# - 在 C# 中优雅地处理 XML 文件中的验证错误

silverlight - Silverlight 库的多个实例

c# - ADO EF - TPH 中派生类型之间的错误映射关联