2016-11-17 5 views
0

私はサーバとクライアントビルド#30155を使用しています。セッション中(session.Load<object>(docId)への呼び出しを経由して)RavenDB session.Advanced.IsLoaded with transformer

TResult Load<TResult>(
string id, 
string transformer, 
Action<ILoadConfiguration> configure); 

私がロードされている文書、および実行:

DOCIDが文字列であると仮定すると、私は次のAPI(https://ravendb.net/docs/article-page/3.5/csharp/client-api/session/loading-entities#load)について少し混乱しています上記の呼び出しの場合、RavenDBは、セッション中にドキュメントがあるにもかかわらず、このセッション内で読み込まれたドキュメントに対してnullを返します。session.IsLoaded(docId)がtrueを返します。原因トランスは、サーバー側を実行するために提供され、 session.Load<object>(docId, transformer: transformerName, configure: null) は「強制的に」サーバーに移動することを目的とした、またはそれはバグです:

は呼び出すことですか?

しかし、session.Load(docId)はまず、docIdを含むドキュメントがすでにセッションに格納されているかどうかをチェックし、最初にdocIdがセッションに含まれているかどうかを確認します。

答えて

0

トランスフォーマーは、結果を知るためにトランスを実行する必要があるため、常にサーバーに送られます。 これとは対照的に、負荷を発行するということは、セッションキャッシュを確認してそこから直接配信できることを意味します。