gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 18:41:23 27 4
gpt4 key购买 nike

我们将 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com