Опять же, у меня вопрос об этой древовидной структуре. Дело в том, что после вызова конечной точки, которая извлекает все дерево, некоторые данные дублируются. Будет лучше, когда я покажу JSON.
[
{
"name": "Node1",
"subNodes": [
{
"name": "Node1_SubNode1",
"subNodes": [],
"subLeaves": [
{
"name": "File1"
}
]
},
{
"name": "Node1_SubNode2",
"subNodes": [],
"subLeaves": []
},
{
"name": "Node1_SubNode3",
"subNodes": [],
"subLeaves": []
}
],
"subLeaves": []
},
{
"name": "Node1_SubNode1",
"subNodes": [],
"subLeaves": [
{
"name": "File1"
}
]
},
{
"name": "Node1_SubNode2",
"subNodes": [],
"subLeaves": []
},
{
"name": "Node1_SubNode3",
"subNodes": [],
"subLeaves": []
}
]
в конце, вы увидите, что узлы повторяются, потому что они уже появились в подузлах выше.
Я получаю узлы в стандартный способ:
var nodes = await _context.Nodes.Include(x => x.SubLeaves).ToListAsync();
Сущность My Node:
public class Node
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int NodeId { get; private set; }
public string Name { get; set; }
public int? ParentNodeId { get; set; }
[ForeignKey("ParentNodeId")]
public Node ParentNode { get; set; }
public List<Node> SubNodes { get; set; }
public List<Leaf> SubLeaves { get; set; }
public Node()
{
SubNodes = new List<Node>();
SubLeaves = new List<Leaf>();
}
}
И конфигурация построителя моделей:
modelBuilder.Entity<Node>()
.HasMany(cat => cat.SubNodes)
.WithOne(cat => cat.ParentNode);
есть ли способ быстро решить эту проблему? Может быть, я смогу сделать это с помощью automapper.