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

C# RIA服务/EF。对派生类中bool字段的更改不会保存到数据库,c#,silverlight,entity-framework,ria,C#,Silverlight,Entity Framework,Ria,我们将EF与RIA服务一起使用。一个简单的应用程序。加载项目列表,浏览/编辑/保存。 问题是有些更改没有持久化到数据库 我有一个模型如下 Person ... string Name bool IsActive Customer : Person ... string Address bool IsLocal 对人员所做的更改将正确保存 更改客户时,如果我将IsLocal值更改为true,则会正确保存。如果将其更改为false,则更改不会持久化到数据库

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

我有一个模型如下

Person
   ...
   string Name
   bool IsActive


Customer : Person
   ...
   string Address
   bool IsLocal
对人员所做的更改将正确保存

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

  • 锅炉板生成代码,无自定义项
  • 没有错误消息。就提交op而言,一切进展顺利
  • 正确保存对地址的更改
    • 如果我更改地址并设置为IsLocal,则两者都可以正确保存
    • 如果我更改地址并清除IsLocal,则地址将保存,但IsLocal将保持设置
  • 无论是清除还是设置,对IsActive(亲自)的更改始终正确保存
  • 我已经用不同的表在另一个解决方案中重新创建了这个问题。
    • 似乎是相同的问题,无法清除派生类中的bool/bit字段
  • 如果人们能提供任何帮助,我们将不胜感激
    谢谢,

    艾伦。

    好吧,我找到了一个适合我的解决方案

    我从以下位置替换了为更新方法生成的代码:

    this.ChangeSet.AttachAsModified( entity, this.ChangeSet.GetOriginal( entity ) );
    
    为了


    希望这有帮助

    你在这个问题上得到帮助了吗?我只是成了同一件事的牺牲品。不。回嘴。这里的另一位开发人员一直在跟进。英孚的人说这不是他们这边的事,他也没有从RIA的人那里得到任何回报。我们目前正在使用存储过程作为解决方法。您可以发布生成的客户端RIA文件源吗?有更多更新吗?我花了一天的时间想弄明白。我发现如果我在基类上设置RoundtripToOriginal属性,一切都很好,但我认为这不是最佳的。。。
    this.ChangeSet.Attach( entity );
    this.ObjectContext.ChangeObjectState( entity, EntityState.Modified );