2017-01-05 10 views
0

クエリコードのためRavenDBに送信することはできません。テイク機能は動作しませんし、クエリ

public class App_OrgSearch : AbstractIndexCreationTask<Org, App_OrgSearch.IndexResult> 
    { 
     public class IndexResult 
     { 
      public string Id { get; set; } 
      public string BusinessName { get; set; } 
      public string ShortName { get; set; } 
      public IList<string> Names { get; set; } 
      public List<string> PhoneNumbers { get; set; } 
      public List<OrganizationUnitPhone> OrganizationUnitPhones { get; set; } 
     } 

     public App_OrganizationUnitSearch() 
     { 
      Map = docs => from doc in docs 
       select new 
       { 
        Id = doc.Id, 
        Names = new List<string> 
        { 
         doc.BusinessName, 
         doc.ShortName, 
        }, 
        BusinessName = doc.BusinessName, 
        ShortName = doc.ShortName, 
        PhoneNumbers = doc.OrganizationUnitPhones.Where(x => x != null && x.Phone != null).Select(x => x.Phone.Number), 

       }; 

      Indexes.Add(x => x.Names, FieldIndexing.Analyzed); 
     } 
    } 

私は、データベース内の27件のレコードを持っている:

var query = session.IndexQuery<App_OrgSearch.IndexResult, App_OrgSearch>(); 
var organizationUnitResults = query.Statistics(out stats) 
        .Skip(0) 
        .Take(5) 
        .AsProjection<Org>().ToList(); 

public static IRavenQueryable<TResult> IndexQuery<TResult, TIndex>(this IDocumentSession session) 
      where TIndex : AbstractIndexCreationTask, new() 
     { 
      return session.Query<TResult, TIndex>(); 
     } 

App_OrgSearchは、私は以下のように定義された指標です。私は5を取るが、クエリの後、すべての27のレコードが返されます。 Takeはなぜ機能しませんか?

+0

明快に編集されています。あいまいなタグを削除しました – user3071284

答えて

0

サンプルコードが間違っているようです。

var query = session.IndexQuery<App_OrgSearch.IndexResult, App_OrgSearch>(); 
var organizationUnitResults = organizationUnitsQuery.Statistics(out stats) 

organizationUnitsQueryとは何ですか? queryというクエリがありますが、セッションにはIndexQueryメソッドがありません。

+0

ありがとうございました! –

+1

を更新し、私は変更して、関数呼び出しの順序この問題を解決: VAR organizationUnitResultsの=のquery.Statistics(統計アウト) .AsProjection () .SKIP(0) .Take(5) .ToListを(); –

関連する問題