0

我在 Sync Framework silverlight 项目中将 Siaqodb 用于我的客户端数据库引擎。我已经切换到 siaqodb,因为微软的客户端解决方案一次将整个数据库加载到内存中,因此很难处理大数据。

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

必须有更好的解决方案。有人有想法么?

4

1 回答 1

0

因此,我通过更改我的离线实体类来实现 iNotifyPropertyChange 来实现这一点,我认为这是一个合理的解决方案。我将 PropertyChanged 事件设置为将对象保存到数据库的函数。有一个名为notifypropertyweaver的 VS 包将在编译时注入此代码,从而减少需要在自动生成的实体代码上完成的工作量。

于 2012-02-08T07:07:18.243 回答