I have an Item. Item has a Category.
Category has ID, Name, Parent
My suggestion would be
var query = CreateQuery()
.Where(entity => entity.Id == Id)
.Include(entity => entity.Parent);
var result = await FindAsync(query);
return result.FirstOrDefault();
and it means it will load single entity and all this entity.Parent entities recursive.
entity is same as entity.Parent