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; }