public virtual IQuery ToQuery(MarshalQuery marshalQuery) { IQuery query = null; IContext ctx = this.Context; IClassMap classMap = ctx.DomainMap.MustGetClassMap(marshalQuery.PrimitiveType); Type realType = ctx.AssemblyManager.MustGetTypeFromClassMap(classMap); if (marshalQuery.QueryType == "NPathQuery") query = new NPathQuery(marshalQuery.QueryString, realType, this.Context); if (marshalQuery.QueryType == "SqlQuery") query = new SqlQuery(marshalQuery.QueryString, realType, this.Context); query.Query = marshalQuery.QueryString; foreach (MarshalParameter mp in marshalQuery.Parameters) { object value = ToParameterValue(mp); IQueryParameter param = new QueryParameter(mp.Name, mp.DbType, value); query.Parameters.Add(param); } return query; }
//From Context protected virtual IList GetObjectsBySql(string sqlQuery, Type type, IList parameters, RefreshBehaviorType refreshBehavior, IList listToFill) { IList idColumns = new ArrayList(); IList typeColumns = new ArrayList(); Hashtable propertyColumnMap = new Hashtable(); IQuery sq = new SqlQuery(sqlQuery); IList outParameters = new ArrayList(); //IList inParameters = new ArrayList(); sq.ToSql(type, this.Context, ref idColumns, ref typeColumns, ref propertyColumnMap, ref outParameters, parameters); return GetObjectsBySql(sqlQuery, type, idColumns, typeColumns, propertyColumnMap, outParameters, refreshBehavior, listToFill ); }