gpt4 book ai didi

indexing - 为什么我在 RavenDB 索引查询中收到此错误 : The field 'CustomerId' is not indexed

转载 作者:行者123 更新时间:2023-12-02 08:04:49 25 4
gpt4 key购买 nike

这是我的索引代码:

public class InvoiceSummaryView
{
public DateTime DueDate { get; set; }
public string CompanyAddress { get; set; }
public string DebtorName { get; set; }
public float Amount { get; set; }
public bool IsPaid { get; set; }
public string CustomerId { get; set; }
}

public class InvoiceSummaryIndex : AbstractIndexCreationTask<CustomerInvoice>
{
public InvoiceSummaryIndex()
{

Map = invoices => from invoice in invoices
select new { DueDate = invoice.DueDate, DebtorId = invoice.DebtorId, Amount = invoice.Amount };

TransformResults = (database, results) =>
from invoice in results
let debtor = database.Load<Debtor>(invoice.DebtorId)
let company = database.Load<Company>(debtor.CompanyId)
select new {
DueDate = invoice.DueDate,
CompanyAddress = Company.Address.ToString(),
DebtorName = debtor.Contact.First + " " + debtor.Contact.Last,
Amount = invoice.Amount,
IsPaid = invoice.IsPaid,
CustomerId = Company.CustomerId
};

}
}

这是我的查询:

var query = from viewItem in session.Query<InvoiceSummaryView>("InvoiceSummaryIndex")
where viewItem.CustomerId == id
orderby viewItem.DueDate
select viewItem;

错误是:

“错误”:“System.ArgumentException:字段“CustomerId”未建立索引, 无法查询未索引的字段...

最佳答案

查看您的索引:

   select new { DueDate = invoice.DueDate, DebtorId = invoice.DebtorId, Amount = invoice.Amount };

您已索引的字段是 DueDate、DebtorId 和 Amount,就是这样。

如果你愿意这样:

   select new { DueDate = invoice.DueDate, DebtorId = invoice.DebtorId, Amount = invoice.Amount, invoice.CustomerId };

它会起作用

关于indexing - 为什么我在 RavenDB 索引查询中收到此错误 : The field 'CustomerId' is not indexed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9149842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com