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;
 }
Пример #2
0
		//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 );
		}