我在 Sync Framework silverlight 项目中将 Siaqodb 用于我的客户端数据库引擎。我已经切换到 siaqodb,因为微软的客户端解决方案一次将整个数据库加载到内存中,因此很难处理大数据。
我已将 SiaqodbOfflineEntity 对象列表绑定到 silverlight 数据网格,以便创建可编辑的数据网格。与微软的解决方案不同,您不能将数据库条目直接绑定到数据网格。您必须查询数据库并将内存对象列表绑定到数据网格。这会导致一个问题,即在更改数据网格单元格时数据库不会立即更新。我试图找到在单元格更改后处理数据库更新的最佳方法。我不能只将每个项目更新到数据库,因为 siaqodb 引擎会将项目标记为脏,即使没有对对象进行任何更改。这将在尝试同步时导致冲突。持有原始列表的缓存版本,然后比较每个对象的每个属性以找出哪些已更改似乎可行,但似乎有点麻烦。我也尝试过查看一些数据网格事件,但 RowEditEnded 在编辑单元格时似乎不会触发,而 CurrentCellChanged 似乎在我切换行时触发(奇数)。
必须有更好的解决方案。有人有想法么?