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