0
我在使用NEST客戶端進行源過濾時遇到問題。NEST過濾源並使用對象構造函數創建對象的實例
這是我的代碼示例:
var searchRequest = client.Search<Report>(analysisDescriptor
.Source(s => s
.Includes(i => i
.Fields(
f => f.ReportId,
f => f.Abstract,
f => f.Title
)
)
)
.Size(10));
哪裏analysisDescriptor
是new SearchDescriptor<Report>()
與文本搜索業務邏輯。
這是我的類的構造函數:
public class Report
{
public Report(int reportId, string itemAbstract, string title)
{
Abstract = itemAbstract;
ReportId = reportId;
Title = title;
/* Other fields */
}
public int ReportId { get; }
public string Abstract { get; }
public string Title { get; }
/* Other fields */
}
現在的問題是,技術負責不希望有set
性質,並希望有一個構造函數來代替。
上面的代碼幾乎作品:
- ReportId分配
- 標題分配
的問題是,Abstract
場不分配,因爲構造函數有它宣佈爲itemAbstract
。這已完成,因爲abstract
是C#中的保留關鍵字。如果我將構造函數中的字段名稱更改爲@abstract
- 這可行,但似乎不正確,因爲我必須使用保留關鍵字。
將Abstract
更改爲ItemAbstract
似乎不是一種選擇,因爲我們在數據庫中擁有它,並且需要更多的更改。
所以理想情況下,我正在尋找一種方法將我的searchRequest
中的Abstract
字段傳遞給Report
的構造函數,作爲itemAbstract
。希望這是有道理的。
我接受任何其他解決方案的清潔和有意義。
工作就像一個魅力! –