在我的场景中,我有一个关于 iis 序列化来自实体框架的对象的MVC,我已经覆盖了GetHashCode和Equal方法,因为这些对象的 Id 在提交到数据库后是不可变的。
我也有一些客户端,他们无法访问数据库,但连接到 iis 以通过 json 序列化这些实体并使用 newtonsoft.json 在本地反序列化它们。
当我第二次在客户端反序列化它们以刷新其中的数据时,我希望现有实例能够自动更新。
我是不是有点太期待了?
我应该编写一些克隆方法来复制属性并检查现有 ID 的缓存吗?我在Equal和GetHashCode方法
中写错了吗?
例如:
- 我在数据库中有一个带有标题的博客实体
- 客户端连接到 iis
- 获取一个包含 {"Id" : 1, "Name" : "blogName"} 的 json 字符串
- 反序列化并存储在本地
- 以与我使用客户端的类博客中的可观察集合相同的方式将帖子添加到博客
- 某人或某事 更改数据库中的博客名称
- 客户端尝试刷新
- 获取包含 {"Id" : 1, "Name" : "newBlogName"} 的 json 字符串
- 将其反序列化为具有相同 id 的类 blog 的新实例
下一步是什么?将新实例名称复制到旧实例名称,或者有更好的方法吗?