I have a table(Campaign) which has self-referencing, the design looks like below;
public class Campaign: SqlEntityBase
{
public int ParentCampaignId { get; set; }
public string Name { get; set; }
public Campaign ParentCampaign { get; set; }
}
// ParentCampaignId is FK to itself
Now I need to retrieve a Campaign including its child,
I am trying to retrieve entity with Id=6,

Code below works fine for first child(4), but couldn't retrieve child of it(2).
There might be even more nested entities how can I retrieve all child entities...
Class:
public async Task<Campaign> GetAsync(int id)
{
using var dbConnection = _context.CreateConnection();
string query = @"SELECT d.[Id], d.[ParentCampaignId], d.[Name] FROM [dbo].[Campaign] d
join [dbo].[Campaign] dc on
d.ParentCampaignId = dc.Id
WHERE d.[Id] = @Id";
var users = await dbConnection.QueryAsync<Campaign, Campaign, Campaign>(query, (p, camp) =>
{
p.ParentCampaign = camp;
return p;
}, splitOn: "Id,ParentCampaignId", param: new { Id = id });
return users.FirstOrDefault();
}