0
說,我有一些POCO
像下面。嵌套for elasticsearch版本2.0.0.0嵌套對象的部分更新
public class Graph
{
public string Id { get; set; } // Indexed by this
public List<Node> NodeList { get; set; }
}
public class Node
{
public string Id { get; set; }
public string Name { get; set; }
public List<Edge> EdgeList { get; set; }
}
public class Edge
{
public string Id { get; set; }
public double Cost { get; set; }
}
當部分更新我的Graph
我想這是Id
找到NodeList
現有Node
,並更新它的Name
和Edge
財產。我不要想要在我的NodeList
中添加新的Node
對象。只想更新現有的。
SOFAR我已經試過:
public void UpdateGraph(string index, Graph graph)
{
var docPath = new DocumentPath<Graph>(graph.Id).Index(index);
try
{
var updateResp = client.Update<Graph, Graph>(docPath, searchDescriptor => searchDescriptor
.Doc(graph)
.RetryOnConflict(4)
.Refresh(true)
);
}
}
在我目前的執行情況,你可以看到所有我做的是更換 老Graph
對象。但我想部分更新我的Graph
對象。我想發送Node
對象列表作爲參數, 查找NodeList
中的那些對象,只更新那些對象。
也許有些東西像下面,
public void UpdateGraph(string index, List<Node> node)
{
//Code here
}