gpt4 book ai didi

c# - Nest 6.2.0自引用循环

转载 作者:行者123 更新时间:2023-12-03 01:36:55 25 4
gpt4 key购买 nike

我正在使用Nest v6.2.0连接到 Elasticsearch 。

当我尝试将A类型的文档添加到索引时,出现自引用循环错误,因为A类型的对象具有B类型的属性,而B类型具有A类型的属性。A和B类型的两个对象是数据库对象。

我可以将JsonParser上的ReferenceLoopHandling设置设置为ReferenceLoopHandling.Ignore,它可以很好地解析对象,但是我似乎无法将该json字符串发送给 Elasticsearch 。那么,如何在Nest使用的Json解析器上设置相同的设置?这样我就可以将对象发送到 Elasticsearch ,并且Nest可以正确解析对象而不会出现自引用循环错误。

最佳答案

您可能想要使用其他更简单的POCO对要发送到Elasticsearch的文档进行建模,以避免通过自引用循环而潜在的大型对象图。

您可以引用 Nest.JsonNetSerializer nuget packagehook up Json.NET as the serializer to use with NEST,配置ReferenceLoopHandling属性

var pool = new SingleNodeConnectionPool(new Uri("http://localhost:9200"));

var settings = new ConnectionSettings(pool, (builtInSerializer, connectionSettings) =>
new JsonNetSerializer(builtInSerializer, connectionSettings, () => new JsonSerializerSettings
{
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
}));

var client = new ElasticClient(settings);

关于c# - Nest 6.2.0自引用循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51769409/

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