private void AddWherePK(DbManager db, SqlQueryInfo query, StringBuilder sb, int nParameter, FullObjectMapper mapper) { sb.Append("WHERE\n"); foreach (IMapper mm in mapper.PropertiesMapping) { if (mm is ValueMapper && mm.DataReaderIndex == mapper.DataReaderIndex) { var valueMapper = (ValueMapper)mm; string tableAlias = mapper.PropertyType.Name; //mm.Name = ID_TRACK SqlQueryParameterInfo p = query.AddParameter( db.DataProvider.Convert(valueMapper.ColumnName + "_W", ConvertType.NameToQueryParameter). ToString(), valueMapper.ColumnName); sb.AppendFormat("\t{0}.{1} = ", tableAlias, db.DataProvider.Convert(p.FieldName, ConvertType.NameToQueryField)); if (nParameter < 0) { sb.AppendFormat("{0} AND\n", p.ParameterName); } else { sb.AppendFormat("{{{0}}} AND\n", nParameter++); } } } sb.Remove(sb.Length - 5, 5); }
protected SqlQueryInfo CreateSelectFullByKeySqlText(DbManager db, Type type) { var sb = new StringBuilder(); var query = new FullSqlQueryInfo(); sb.Append("SELECT\n"); int index = 0; FullObjectMapper mainMapper = ((FullMappingSchema)db.MappingSchema).GetObjectMapper(type, ref index); BuildSelectSQL(mainMapper, sb, db); sb.Remove(sb.Length - 2, 1); sb.Append("FROM\n\t"); AppendTableName(sb, db, type); AppendJoinTableName(sb, db, type); AddWherePK(db, query, sb, -1, mainMapper); query.QueryText = sb.ToString(); return(query); }