public virtual IClassMap GetRootClassMap(string npath, IDomainMap domainMap)
        {
            NPathParser      parser = new NPathParser();
            NPathSelectQuery query  = parser.ParseSelectQuery(npath);

            string className = ((NPathClassName)query.From.Classes[0]).Name;

            IClassMap rootClassMap = domainMap.MustGetClassMap(className);

            return(rootClassMap);
        }
        public virtual string ToScalarSql(string npath, Type type, ref IList outParameters, IList inParameters)
        {
            NPathParser      parser = new NPathParser();
            NPathSelectQuery query  = parser.ParseSelectQuery(npath, inParameters);

            IClassMap rootClassMap = this.Context.DomainMap.MustGetClassMap(type);

            this.ResultParameters = new ArrayList();

            SqlEmitter sqlEmitter = new SqlEmitter(this, query, NPathQueryType.SelectScalar, rootClassMap);

            string sql = sqlEmitter.EmitSql();

            outParameters = sqlEmitter.ResultParameters;

            return(sql);
        }
        public virtual NPathQueryType GetNPathQueryType(string npath)
        {
            NPathQueryType npathQueryType = NPathQueryType.SelectObjects;

            try
            {
                NPathParser      parser = new NPathParser();
                NPathSelectQuery query  = parser.ParseSelectQuery(npath);

                npathQueryType = GetNPathQueryType(query);
            }
            catch
            {
                npathQueryType = NPathQueryType.SelectObjects;
            }

            return(npathQueryType);
        }