Example #1
0
        //private Dictionary<string, EntityBase> _dicInstance = new Dictionary<string, EntityBase>();//已经实例化的实体

        //private IList _baseList;

        /// <summary>
        /// 别名映射
        /// </summary>
        /// <param name="table"></param>
        /// <param name="aliasName"></param>
        public AliasTableMapping(BQLEntityTableHandle table, TableAliasNameManager belongManager, EntityMappingInfo mappingInfo)
        {
            _belongManager = belongManager;
            _entityInfo    = table.GetEntityInfo();
            _table         = new BQLAliasHandle(table, _belongManager.NextTableAliasName());
            _mappingInfo   = mappingInfo;
            InitParam(table);
        }
Example #2
0
        /// <summary>
        /// from关键字
        /// </summary>
        /// <param name="handle"></param>
        /// <returns></returns>
        internal override void Tran(KeyWordInfomation info)
        {
            StringBuilder ret = new StringBuilder();


            if (info.AliasManager == null)
            {
                for (int i = 0; i < _tables.Length; i++)
                {
                    BQLTableHandle table     = _tables[i];
                    string         tableName = table.DisplayValue(info);
                    ret.Append(tableName);
                    if (i < _tables.Length - 1)
                    {
                        ret.Append(",");
                    }
                }
                info.Condition.Tables.Append(ret.ToString());
            }
            else
            {
                for (int i = 0; i < _tables.Length; i++)
                {
                    BQLTableHandle table = _tables[i];

                    BQLAliasHandle ahandle = info.AliasManager.GetPrimaryAliasHandle(table);
                    if (!Buffalo.Kernel.CommonMethods.IsNull(ahandle))
                    {
                        _tables[i] = ahandle;
                    }
                }


                KeyWordFromItem       from    = info.AliasManager.ToInnerTable(this, info);
                TableAliasNameManager manager = info.AliasManager;
                info.AliasManager = null;
                Stack <KeyWordFromItem> stkFrom = new Stack <KeyWordFromItem>();
                while (from != null)
                {
                    stkFrom.Push(from);
                    from = from.Previous as KeyWordFromItem;
                }
                while (stkFrom.Count > 0)
                {
                    from = stkFrom.Pop();
                    from.Tran(info);
                }
                info.AliasManager = manager;
            }
        }
 /// <summary>
 /// Insert的字段关键字项
 /// </summary>
 /// <param name="valueHandles">值的集合</param>
 /// <param name="previous">上一个关键字</param>
 internal KeyWordInsertQueryItem(BQLQuery query, BQLQuery previous)
     : base(previous)
 {
     this._query = new BQLAliasHandle(query, null);
 }
Example #4
0
        /// <summary>
        /// 别名查询
        /// </summary>
        /// <param name="query">查询</param>
        /// <param name="asName">别名</param>
        /// <returns></returns>
        public static BQLAliasHandle TableAs(BQLQuery query, string asName)
        {
            BQLAliasHandle item = new BQLAliasHandle(query, asName);

            return(item);
        }
Example #5
0
        /// <summary>
        /// 一个别名表
        /// </summary>
        /// <param name="table">表</param>
        /// <param name="asName">别名</param>
        /// <returns></returns>
        public static BQLAliasHandle TableAs(BQLEntityTableHandle table, string asName)
        {
            BQLAliasHandle item = new BQLAliasHandle(table, asName);

            return(item);
        }
Example #6
0
        /// <summary>
        /// 给这个查询定义一个别名
        /// </summary>
        /// <param name="asName">别名(如果不想要别名这里为null或"")</param>
        /// <returns></returns>
        public BQLAliasHandle AS(string asName)
        {
            BQLAliasHandle item = new BQLAliasHandle(this, asName);

            return(item);
        }