我刚刚开始使用 Raven,我创建的索引始终无法索引任何内容。我在 Raven 服务器上发现了很多如下所示的错误:
{
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
}
我创建的索引如下所示:
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)
};
}
}
该索引由 Raven 创建(通过 Raven Studio 查看),看起来不错。
真正让我困惑的是我使用的文档不包含任何双精度或整数,我存储的唯一数字是小数。
可能是什么原因导致了这个问题?
问题出在这一行:
AmountPaid = g.Sum(x => x.AmountPaid)
将其替换为:
AmountPaid = g.Sum(x => (double)x.AmountPaid)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)