コード例 #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);
        }
コード例 #2
0
ファイル: DBInfo.cs プロジェクト: radtek/buffalobro
        /// <summary>
        /// 添加到库信息
        /// </summary>
        /// <param name="table"></param>
        internal void AddToDB(BQLEntityTableHandle table)
        {
            string key = table.GetEntityInfo().EntityType.FullName;

            if (!_dicTables.ContainsKey(key))
            {
                _dicTables[key] = table;
            }
        }
コード例 #3
0
        /// <summary>
        /// 获取主表的别名信息
        /// </summary>
        /// <param name="table"></param>
        /// <returns></returns>
        public BQLAliasHandle GetPrimaryAliasHandle(BQLTableHandle table)
        {
            BQLEntityTableHandle eHandle = table as BQLEntityTableHandle;

            if (Buffalo.Kernel.CommonMethods.IsNull(eHandle))
            {
                return(null);
            }
            if (eHandle.GetEntityInfo() == _primaryTable.EntityInfo)
            {
                return(_primaryTable.TableInfo);
            }
            return(null);
        }
コード例 #4
0
        /// <summary>
        /// 初始化字段
        /// </summary>
        /// <param name="table"></param>
        /// <param name="paramIndex"></param>
        private void InitParam(BQLEntityTableHandle table)
        {
            _dicParams = new Dictionary <string, BQLAliasParamHandle>();

            foreach (EntityPropertyInfo info in table.GetEntityInfo().PropertyInfo)
            {
                string prmAliasName     = _belongManager.NextParamAliasName(_table.GetAliasName());
                BQLAliasParamHandle prm = BQL.Tables[_table.GetAliasName()][info.ParamName].As(prmAliasName);


                _dicPropertyInfo[prmAliasName] = info;
                prm.ValueDbType = info.SqlType;
                _dicParams[info.PropertyName] = prm;
            }
        }
コード例 #5
0
ファイル: ScopeList.cs プロジェクト: guojianbin/buffalobro
        /// <summary>
        /// 获取真正要显示的属性集合
        /// </summary>
        /// <param name="handle"></param>
        /// <returns></returns>
        public List <BQLParamHandle> GetShowProperty(BQLTableHandle table)
        {
            List <BQLParamHandle> propertys = new List <BQLParamHandle>();

            if (_showProperty != null && _showProperty.Count > 0)
            {
                foreach (BQLParamHandle param in _showProperty)
                {
                    propertys.Add(param);
                }
                return(propertys);
            }



            BQLEntityTableHandle eTable = table as BQLEntityTableHandle;

            if (!CommonMethods.IsNull(eTable))
            {
                foreach (EntityPropertyInfo info in eTable.GetEntityInfo().PropertyInfo)
                {
                    string name   = info.PropertyName;
                    bool   hidden = false;
                    foreach (BQLParamHandle param in _hideProperty)
                    {
                        BQLEntityParamHandle eph = param as BQLEntityParamHandle;
                        if (!CommonMethods.IsNull(eph))
                        {
                            if (eph.PInfo.PropertyName == name)
                            {
                                hidden = true;
                                break;
                            }
                        }
                    }
                    if (!hidden)
                    {
                        propertys.Add(eTable[info.PropertyName]);
                    }
                }
                return(propertys);
            }
            if (!CommonMethods.IsNull(table))
            {
                propertys.Add(table._);
            }
            return(propertys);
        }
コード例 #6
0
ファイル: BQLDbBase.cs プロジェクト: guojianbin/buffalobro
        /// <summary>
        /// 查询是否存在符合条件的记录
        /// </summary>
        /// <param name="BQL">sql语句</param>
        /// <returns></returns>
        public bool ExistsRecord <E>(ScopeList lstScope)
            where E : EntityBase, new()
        {
            Type eType = typeof(E);
            BQLEntityTableHandle table = _oper.DBInfo.FindTable(eType);

            if (CommonMethods.IsNull(table))
            {
                _oper.DBInfo.ThrowNotFondTable(eType);
            }
            List <BQLParamHandle> lstParams = new List <BQLParamHandle>();

            lstParams.Add(table[table.GetEntityInfo().PrimaryProperty[0].PropertyName]);

            BQLCondition where = BQLCondition.TrueValue;
            where = FillCondition(where, table, lstScope);
            BQLQuery bql = BQL.Select(lstParams.ToArray())
                           .From(table)
                           .Where(where)
                           .OrderBy(GetSort(lstScope.OrderBy, table));

            return(ExistsRecord <E>(bql, lstScope.UseCache));
        }
コード例 #7
0
ファイル: BQLDbBase.cs プロジェクト: guojianbin/buffalobro
 /// <summary>
 /// 转换排序信息
 /// </summary>
 /// <param name="lstScort"></param>
 /// <param name="table"></param>
 /// <returns></returns>
 protected BQLParamHandle[] GetSort(SortList lstScort, BQLEntityTableHandle table)
 {
     return(BQLConditionScope.GetSort(lstScort, table, table.GetEntityInfo()));
 }
コード例 #8
0
ファイル: BQLDbBase.cs プロジェクト: guojianbin/buffalobro
 /// <summary>
 /// 填充信息
 /// </summary>
 /// <param name="condition"></param>
 /// <param name="table"></param>
 /// <param name="lstScope"></param>
 /// <param name="entityType"></param>
 public BQLCondition FillCondition(BQLCondition condition, BQLEntityTableHandle table, ScopeList lstScope)
 {
     return(BQLConditionScope.FillCondition(condition, table, lstScope, table.GetEntityInfo()));
 }