2010-09-05 59 views
2

我有一個oData生成的DataServiceContext,我正在向它成功添加實體。我需要添加一大堆實體,然後在一個SaveChanges中提交它們,並在最後設置批處理選項。這很好,直到我在保存更改之前查詢它。從DataServiceContext查詢

大綱是:

  • 創建一個新的實體
  • 將它添加到DataServiceContext
  • 運行上下文查詢找我剛纔添加的項目 - 未找到該

我以前與EF4的工作會建議,如果這是一個實體上下文,一切都會好的,但因爲這是一個服務上下文我不能查詢已添加但未保存到t他服務。

這是這種情況?

回答

4

DataServiceContext基本上只是一個小幫手。對它運行任何查詢將直接在服務器上運行查詢,客戶端不會嘗試以任何方式修復數據。由於您所做的更改尚未將其添加到服務器(SaveChanges尚未調用),查詢將不會返回新添加的實體。 如果您確實需要列出您在SaveChanges之前添加的實體,則可以使用DataServiceContext.Entities集合,該集合將返回EntityDescriptor以獲取由上下文跟蹤的所有實體。您可以通過查找狀態爲已添加的人員列出添加的人員。