2

oData で生成された DataServiceContext があり、それにエンティティを正常に追加しています。エンティティの負荷全体を追加し、最後にバッチ オプションを設定して単一の SaveChanges にコミットする必要があります。保存が変更される前にクエリを実行するまでは、これで問題ありません。

概要は次のとおりです。

  • 新しいエンティティを作成する
  • それを DataServiceContext に追加します
  • コンテキストでクエリを実行して、追加したアイテムを探します - IT IS NOT FOUND

以前の EF4 の作業では、これがエンティティ コンテキストであればすべて問題ないことが示唆されましたが、これはサービス コンテキストであるため、サービスに追加されたが保存されていないエンティティに対してクエリを実行することはできません。

これは事実ですか?

4

1 に答える 1

4

DataServiceContext は、基本的に単なる小さなヘルパーです。それに対してクエリを実行すると、サーバーでクエリが直接実行され、クライアントはデータを修正しようとしません。変更がまだサーバーに反映されていないため (SaveChanges はまだ呼び出されていません)、クエリは新しく追加されたエンティティを返しません。SaveChanges の前に追加したエンティティを一覧表示する必要がある場合は、コンテキストによって追跡されるすべてのエンティティの EntityDescriptor を返す DataServiceContext.Entities コレクションを使用できます。状態が追加されたものを探すことで、追加されたものを一覧表示できます。

于 2010-09-07T16:16:06.390 に答える