【发布时间】:2015-06-18 01:07:46
【问题描述】:
场景:
我有两个 MySQL 数据库:
- 大主数据库
- 小客户端数据库
示例表:
大数据库用户:
文字用户名
- int id
- varchar 登录
- varchar 密码
- ...更多字段
客户端数据库用户
- int id
- int UNIQUE api_id (来自 master 的 id)
- varchar 登录
- varchar 密码
问题: 我需要同步数据库,但我不知道如何以最好的方式做到这一点。我读过this question,但它已经很老了,不包括我的情况。 我通过 REST API 与主数据库通信,直接连接不是选项。
我的同步算法
- 将数据从 REST API(例如 /api/users/ )下载并反序列化到 ApiUser 对象列表
- 遍历 Apiuser 列表
- 如果存在具有 ApiUser.id 的实体,则覆盖所有字段
- 否则创建新实体
- 保存更改
我的代码:
公共无效同步用户(列表问题: 如何做得更好?我对从主数据库中删除的实体有疑问,我的算法不涵盖这种情况。
【问题讨论】:
-
除了从数据库中删除用户之外,是否可以有一个标志,如果用户被删除,则可以将其标记为 true,这样您的代码就不会再次重新创建用户?
标签: c# wpf entity-framework synchronization