我有一个非常简单的索引,它返回一个扁平的Products结构,这就是我如何使用它:
_documentSession.Query<ProductsIndex.IndexResult, ProductsIndex>().
Customize(x => x.WaitForNonStaleResults()).
OrderByDescending(x => x.DateTime).
Take(20).
AsProjection<ProductsIndex.IndexResult>().
ToList();
它起作用并返回20个最后结果。现在我想为这个查询添加一个转换器。这是我的尝试:
_documentSession.Query<ProductsIndex.IndexResult, ProductsIndex>().
Customize(x => x.WaitForNonStaleResults()).
TransformWith<ProductsTransformer, ProductsTransformer.TransformerResult>().
OrderByDescending(x => x.DateTime).
Take(20).
AsProjection<ProductsTransformer.TransformerResult>().
ToList();
所以我添加了TransformWith线并更改了AsProjection线。问题是它只返回8个文件。据我所知,它没有获得AsProjection部分并自行返回产品。
答案 0 :(得分:2)
您需要使用:
_documentSession.Query<ProductsIndex.IndexResult, ProductsIndex>().
Customize(x => x.WaitForNonStaleResults().SetAllowMultipleIndexEntriesForSameDocumentToResultTransformer(true)).
TransformWith<ProductsTransformer, ProductsTransformer.TransformerResult>().
OrderByDescending(x => x.DateTime).
Take(20).
ToList();
请注意SetAllowMultipleIndexEntriesForSameDocumentToResultTransformer
来电