2

我有一个 oData 生成的 DataServiceContext 并且我成功地向它添加了实体。我需要添加一整套实体,然后将它们提交到单个 SaveChanges 中,并在最后设置 Batch 选项。这一切都很好,直到我在保存更改之前来查询它。

大纲是:

  • 创建一个新实体
  • 将其添加到 DataServiceContext
  • 在上下文中运行查询以查找我刚刚添加的项目 - 未找到

我之前使用 EF4 的工作表明,如果这是一个实体上下文,一切都会好起来的,但因为这是一个服务上下文,我无法查询已添加但未保存到服务的实体。

是这样吗?

4

1 回答 1

4

DataServiceContext 基本上只是一个小帮手。对它运行任何查询将直接在服务器上运行查询,客户端不会尝试以任何方式修复数据。由于您的更改尚未发送到服务器(尚未调用 SaveChanges),因此查询将不会返回新添加的实体。如果您确实需要列出在 SaveChanges 之前添加的实体,则可以使用 DataServiceContext.Entities 集合,该集合将为上下文跟踪的所有实体返回 EntityDescriptor。您可以通过查找状态为已添加的内容来列出添加的内容。

于 2010-09-07T16:16:06.390 回答