【问题标题】:Expose a persistent DataSet that includes Change Tracking公开一个包含更改跟踪的持久数据集
【发布时间】:2011-09-09 19:22:05
【问题描述】:

我想公开一个在数据库中发送 记录的 WCF 服务操作。每次调用该操作时,它都应返回一个 DataSet 对象,该对象仅包含自上次调用该操作以来已添加到数据库中的行。

我的问题是这是否可以通过在调用之间序列化 DataSet 然后使用 GetChanges() 和 AcceptChanges() 方法来实现。

即(伪代码),

 [OperationContract]
 public DataSet GetDataSet() 
 {     
       DataSet ds = LoadDataSet();   // load a dataset from saved xml or binary

       DataSet newDs = GetRecordsFromDatabase(); // load dataset from database

       ds.Merge(newDs, true);  // somehow recognize which records in the newDs 
                               // load are new?
       return ds.GetChanges(); 
 }

【问题讨论】:

  • 如果您可以识别请求数据集的用户。您可以为每个用户存储数据集中的记录数量。然后,您可以使用计数选择之后添加的所有记录。这仅在订购数据集时才有效。
  • 是的,我正在做这样的事情,使用存储每个实体/数据库视图的最新条目的 LIFO 堆栈。只是想知道这种持久性数据集概念是否可行。

标签: c# wcf datatable dataset


【解决方案1】:

试试:

ds.GetChanges(DataRowState.Added)

我的建议: 不要序列化数据集。也许您可以保留您插入的最后一条记录的 ID。

问候, M.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    • 2022-11-13
    • 1970-01-01
    • 1970-01-01
    • 2011-09-29
    • 2011-08-15
    相关资源
    最近更新 更多