【发布时间】:2012-02-07 16:40:36
【问题描述】:
我在 Sync Framework silverlight 项目中将 Siaqodb 用于我的客户端数据库引擎。我已切换到 siaqodb,因为 microsoft 的客户端解决方案一次将整个数据库加载到内存中,因此很难处理大数据。
我已将 SiaqodbOfflineEntity 对象列表绑定到 silverlight 数据网格,以创建可编辑的数据网格。与微软的解决方案不同,您不能将数据库条目直接绑定到数据网格。您必须查询数据库并将内存对象列表绑定到数据网格。这会导致一个问题,即在更改数据网格单元格时数据库不会立即更新。我试图找到在单元格更改后处理数据库更新的最佳方法。我不能只将每个项目更新到数据库,因为 siaqodb 引擎会将项目标记为脏,即使没有对对象进行任何更改。这将在尝试同步时导致冲突。持有原始列表的缓存版本,然后比较每个对象的每个属性以查找哪些已更改,这似乎可行,但似乎有点麻烦。我也尝试查看一些数据网格事件,但 RowEditEnded 在编辑单元格时似乎不会触发,而 CurrentCellChanged 似乎在我切换行时触发(奇数)。
必须有更好的解决方案。有人有什么想法吗?
【问题讨论】:
-
"microsoft 客户端解决方案一次将整个数据库加载到内存中" 请原谅我的怀疑,但我严重怀疑您的说法是否属实。 msdn.microsoft.com/en-us/sync/bb887608 同步 fx 使用更改跟踪,无论如何,您应该只在客户端将数据绑定到本地数据库的一个子集。
-
问题出在 Silverlight 和使用独立存储的 Microsoft 客户端同步提供程序上。即使绑定数据库的一个子集,整个数据库也会加载到内存中。更多信息可以在这里找到:social.msdn.microsoft.com/Forums/en-US/synclab/thread/…
标签: silverlight syncfx