public override bool BuildWhere(ExtentStatement statement, string alias) { var schema = statement.Schema; var inStatement = statement.CreateChild(this.inExtent, this.association); inStatement.UseRole(this.association.RoleType); if ((this.association.IsMany && this.association.RelationType.RoleType.IsMany) || !this.association.RelationType.ExistExclusiveClasses) { statement.Append(" (" + this.association.SingularFullName + "_A." + schema.AssociationId + " IS NOT NULL AND "); statement.Append(" " + this.association.SingularFullName + "_A." + schema.AssociationId + " IN (\n"); this.inExtent.BuildSql(inStatement); statement.Append(" ))\n"); } else { if (this.association.RelationType.RoleType.IsMany) { statement.Append(" (" + alias + "." + schema.Column(this.association) + " IS NOT NULL AND "); statement.Append(" " + alias + "." + schema.Column(this.association) + " IN (\n"); this.inExtent.BuildSql(inStatement); statement.Append(" ))\n"); } else { statement.Append(" (" + this.association.SingularFullName + "_A." + schema.ObjectId + " IS NOT NULL AND "); statement.Append(" " + this.association.SingularFullName + "_A." + schema.ObjectId + " IN (\n"); this.inExtent.BuildSql(inStatement); statement.Append(" ))\n"); } } return(this.Include); }