У меня есть таблица с собственной ссылкой между Id и ParentId, и это моя модель
public class Category
{
public Category()
{
Children = new List<Category>();
}
[Key]
public int Id { get; set; }
public string Name { get; set; }
public int ParentId { get; set; }
public IList<Category> Children { get; set; }
}
и это мой запрос и отображение
string query = "SELECT * FROM Categories as A" +
" inner join Categories as B" +
" on A.Id = B.ParentId";
var catDictionary = new Dictionary<int, Category>();
var list = dbConnection.Query<Category, Category, Category>(query,
(category, child) =>
{
category.Children = category.Children ?? new List<Category>();
category.Children.Add(child);
return category;
}).ToList();
return list;
и это результат
Есть повторяющиеся узлы и глубина не полная