internal override bool BuildWhere(AllorsExtentFilteredSql extent, Mapping mapping, AllorsExtentStatementSql statement, IObjectType type, string alias) { if (this.Include) { var root = extent.Filter.Equals(this); statement.Append(root ? " AND " : "("); var atLeastOneChildIncluded = false; foreach (var filter in this.filters) { if (atLeastOneChildIncluded) { statement.Append(" AND "); } if (filter.BuildWhere(extent, mapping, statement, type, alias)) { atLeastOneChildIncluded = true; } } if (!root) { statement.Append(")"); } return atLeastOneChildIncluded; } return false; }
internal override bool BuildWhere(AllorsExtentFilteredSql extent, Mapping mapping, AllorsExtentStatementSql statement, IObjectType type, string alias) { if (this.Include) { statement.Append("("); var atLeastOneChildIncluded = false; foreach (AllorsPredicateSql filter in this.filters) { if (atLeastOneChildIncluded) { statement.Append(" OR "); } if (filter.BuildWhere(extent, mapping, statement, type, alias)) { atLeastOneChildIncluded = true; } } statement.Append(")"); return atLeastOneChildIncluded; } return false; }
internal override bool BuildWhere(AllorsExtentFilteredSql extent, Mapping mapping, AllorsExtentStatementSql statement, IObjectType type, string alias) { if (this.instanceClasses.Length == 1) { statement.Append(" (" + statement.GetJoinName(this.association) + "." + Mapping.ColumnNameForType + " IS NOT NULL AND "); statement.Append(" " + statement.GetJoinName(this.association) + "." + Mapping.ColumnNameForType + "=" + statement.AddParameter(this.instanceClasses[0].Id) + ")"); } else if (this.instanceClasses.Length > 1) { statement.Append(" ( "); for (var i = 0; i < this.instanceClasses.Length; i++) { statement.Append(" (" + statement.GetJoinName(this.association) + "." + Mapping.ColumnNameForType + " IS NOT NULL AND "); statement.Append(" " + statement.GetJoinName(this.association) + "." + Mapping.ColumnNameForType + "=" + statement.AddParameter(this.instanceClasses[i].Id) + ")"); if (i < this.instanceClasses.Length - 1) { statement.Append(" OR "); } } statement.Append(" ) "); } return this.Include; }
internal override bool BuildWhere(AllorsExtentFilteredSql extent, Mapping mapping, AllorsExtentStatementSql statement, IObjectType type, string alias) { statement.Append("\n"); statement.Append("EXISTS(\n"); statement.Append("SELECT " + Mapping.ColumnNameForObject + "\n"); statement.Append("FROM " + mapping.GetTableName(this.role) + "\n"); statement.Append("WHERE " + Mapping.ColumnNameForAssociation + "=" + alias + "." + Mapping.ColumnNameForObject + "\n"); statement.Append("AND " + Mapping.ColumnNameForRole + "=" + this.allorsObject.Strategy.ObjectId + "\n"); statement.Append(")\n"); return this.Include; }
internal override bool BuildWhere(AllorsExtentFilteredSql extent, Mapping mapping, AllorsExtentStatementSql statement, IObjectType type, string alias) { AllorsExtentStatementSql inStatement = statement.CreateChild(inExtent, association); inStatement.UseRole(association.RoleType); statement.Append(" (" + association.SingularFullName + "_A." + Mapping.ColumnNameForRole + " IS NOT NULL AND "); statement.Append(" " + association.SingularFullName + "_A." + Mapping.ColumnNameForRole + " IN (\n"); inExtent.BuildSql(inStatement); statement.Append(" ))\n"); return Include; }
internal override bool BuildWhere(AllorsExtentFilteredSql extent, Mapping mapping, AllorsExtentStatementSql statement, IObjectType type, string alias) { var inStatement = statement.CreateChild(this.inExtent, this.role); inStatement.UseAssociation(this.role.AssociationType); statement.Append(" (" + this.role.SingularFullName + "_R." + Mapping.ColumnNameForRole + " IS NOT NULL AND "); statement.Append(" " + this.role.SingularFullName + "_R." + Mapping.ColumnNameForAssociation + " IN ("); this.inExtent.BuildSql(inStatement); statement.Append(" ))"); return this.Include; }
internal override bool BuildWhere(AllorsExtentFilteredSql extent, Mapping mapping, AllorsExtentStatementSql statement, IObjectType type, string alias) { var inStatement = new StringBuilder("0"); foreach (var inObject in this.enumerable) { inStatement.Append(","); inStatement.Append(inObject.Id); } statement.Append(" (" + this.role.SingularPropertyName + "_R." + Mapping.ColumnNameForRole + " IS NOT NULL AND "); statement.Append(" " + this.role.SingularPropertyName + "_R." + Mapping.ColumnNameForAssociation + " IN ("); statement.Append(inStatement.ToString()); statement.Append(" ))"); return this.Include; }
internal void BuildOrder(AllorsExtentSortSql sorter, Mapping mapping, AllorsExtentStatementSql statement) { if (sorter.Equals(this)) { statement.Append(" ORDER BY " + this.roleType.SingularFullName + "_R" + ".R"); } else { statement.Append(" , " + this.roleType.SingularFullName + "_R" + ".R"); } statement.Append(this.sortDirection == SortDirection.Ascending ? " ASC " : " DESC "); if (this.subSorter != null) { this.subSorter.BuildOrder(sorter, mapping, statement); } }
internal override bool BuildWhere(AllorsExtentFilteredSql extent, Mapping mapping, AllorsExtentStatementSql statement, IObjectType type, string alias) { statement.Append(" (" + alias + "." + Mapping.ColumnNameForObject + "=" + statement.AddParameter(obj) + ") "); return Include; }
internal void BuildSelect(AllorsExtentFilteredSql extent, Mapping mapping, AllorsExtentStatementSql statement) { statement.Append(" , " + this.roleType.SingularFullName + "_R." + Mapping.ColumnNameForRole + " "); if (this.subSorter != null) { this.subSorter.BuildSelect(extent, mapping, statement); } }
internal override bool BuildWhere(AllorsExtentFilteredSql extent, Mapping mapping, AllorsExtentStatementSql statement, IObjectType type, string alias) { statement.Append(" " + role.SingularFullName + "_R." + Mapping.ColumnNameForRole + " BETWEEN " + first.SingularFullName + "_R." + Mapping.ColumnNameForRole + " AND " + second.SingularFullName + "_R." + Mapping.ColumnNameForRole + " "); return Include; }
internal override bool BuildWhere(AllorsExtentFilteredSql extent, Mapping mapping, AllorsExtentStatementSql statement, IObjectType type, string alias) { statement.Append(" " + this.roleType.SingularFullName + "_R." + Mapping.ColumnNameForRole + " > " + statement.AddParameter(this.obj)); return this.Include; }
internal override bool BuildWhere(AllorsExtentFilteredSql extent, Mapping mapping, AllorsExtentStatementSql statement, IObjectType type, string alias) { if (this.Include) { statement.Append(" NOT ("); this.filter.BuildWhere(extent, mapping, statement, type, alias); statement.Append(")"); } return this.Include; }
internal override bool BuildWhere(AllorsExtentFilteredSql extent, Mapping mapping, AllorsExtentStatementSql statement, IObjectType type, string alias) { statement.Append(" " + this.role.SingularFullName + "_R." + Mapping.ColumnNameForRole + " < " + this.lessThanRole.SingularFullName + "_R." + Mapping.ColumnNameForRole); return(this.Include); }
internal override bool BuildWhere(AllorsExtentFilteredSql extent, Mapping mapping, AllorsExtentStatementSql statement, IObjectType type, string alias) { statement.Append(" (" + this.association.SingularFullName + "_A." + Mapping.ColumnNameForAssociation + " IS NOT NULL AND "); statement.Append(" " + this.association.SingularFullName + "_A." + Mapping.ColumnNameForAssociation + "=" + this.allorsObject.Strategy.ObjectId + ")"); return this.Include; }
internal abstract bool BuildWhere(AllorsExtentFilteredSql extent, Mapping mapping, AllorsExtentStatementSql statement, IObjectType type, string alias);