public bool TryLoadRoodId(TemplateNodeInfo node, Int64? connectionGroupId, Int64? templatedId)
        {
            String sql = string.Format(
                "SELECT ni.[{8}] FROM [{0}] ni " +
                "JOIN [{4}] tn ON ni.[{5}] = tn.[{8}] " +
                "WHERE ni.[{1}] IS NULL AND ni.[{2}] = {3} " +
                "AND tn.[{6}] = {7}",
                TableName,
                ParentIdFn,
                ConnectionIdFn,
                connectionGroupId,
                TemplateNodeDirectory.TableName,
                TemplateNodeIdFn,
                TemplateNodeDirectory.TemplateIdFn,
                templatedId,
                TemplateNodeDirectory.TableIdentityField
            );

            using (this.Connection.OpenWrapper())
            {
                bool result = false;

                new SqlSelectCommand(
                    this.Connection,
                    sql,
                    reader =>
                    {
                        node.AssignTemplateId((Int64)reader[IdentityField]);
                        result = true;
                    })
                    .Execute(100);

                if (result)
                {
                    return true;
                }
            }

            return false;
        }