2012-01-14 13 views
2

私はRavenを使い始めています。作成したインデックスは何もインデックスを作成できません。見てRavenDBのインデックスエラー

public class HomeBlurb_IncludeTotalCosts : AbstractIndexCreationTask<MPDocument, HomeBlurb_IncludeTotalCosts.ReduceResult> 
{ 
    public class ReduceResult 
    { 
     public string Name { get; set; } 
     public string Constituency { get; set; } 
     public decimal AmountPaid { get; set; } 
    } 

    public HomeBlurb_IncludeTotalCosts() 
    { 
     Map = mps => from mp in mps 
          from expense in mp.Expenses 
          select new 
          { 
           mp.Name, 
           mp.Constituency, 
           AmountPaid = expense.AmountPaid ?? 0M 
          }; 

     Reduce = results => from result in results 
          group result by new { result.Name, result.Constituency } 
          into g 
          select new 
          { 
           g.Key.Name, 
           g.Key.Constituency, 
           AmountPaid = g.Sum(x => x.AmountPaid) 
          }; 
    } 
} 

インデックスはレイヴンによって作成された(:

{ 
    Index: "HomeBlurb/IncludeTotalCosts", 
    Error: "Cannot implicitly convert type 'double' to 'int'. An explicit conversion exists (are you missing a cast?)", 
    Timestamp: "2012-01-14T15:40:40.8943226Z", 
    Document: null 
} 

私が作成したインデックスは次のようになります。このようになりレイヴンサーバー上のエラーの多くは、私を見つけましたそれはRaven Studio経由で)うまくいくようです。

本当に私を投げ捨てるのは、使用しているドキュメントに倍精度または整数が含まれていないことです。格納している唯一の数字は小数です。

何が原因なのですか?

+0

を?私はちょうど573を使用して小さなデモであなたのインデックスを試してみましたが、それは問題なく動作し、インデックスエラーは見られませんでした。 –

+0

私は573も使用しています。 – ilivewithian

+0

すべてのプロジェクト参照を削除して置き換え、クライアントを再構築し、サーバーを再起動してデータを再インポートしました。 – ilivewithian

答えて

0

問題は、この行である:

   AmountPaid = g.Sum(x => x.AmountPaid) 

はに置き換えます:あなたが使用している構築

   AmountPaid = g.Sum(x => (double)x.AmountPaid) 
+0

もう少し掘り下げた後で、キャストなしでインデックスを作成し、その後でキャストを追加すると(インデックスの唯一の変更として)、それでも問題が発生しました。 raven studioを使用してインデックスを削除した後、再びインデックスを作成すると(キャスト付き)、正常に動作します。私はレポを作成し、バグ報告を入れようとします。 – ilivewithian

+0

いいえ、キャスティングは問題ではありませんでした。これは私のために働く:https://gist.github.com/1612214 –

関連する問題