【发布时间】: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 堆栈。只是想知道这种持久性数据集概念是否可行。