Esempio n. 1
0
        /// <summary>
        /// 更新最大Id记录
        /// </summary>
        /// <param name="maxId">数据源中当前最大主键值</param>
        private void UpdateMaxId(string maxId)
        {
            var maxBll   = new OracleTableMaxIdBll();
            var maxModel = new OracleTableMaxId
            {
                MaxId     = maxId,
                TableName = OracleTableName
            };

            bool success;

            if (maxBll.Exists($"TableName='{OracleTableName}'"))
            {
                success = maxBll.Update(maxModel);
            }
            else
            {
                success = maxBll.Insert(maxModel).Id > 0;
            }

            if (success)
            {
                // 更新缓存
                CacheManager.MaxIdCache.Add(maxModel);
            }
        }
Esempio n. 2
0
        protected override IEnumerable <VHISPLANINFO> GetDataFromSourdeDb(OracleTableMaxId maxId)
        {
            var type          = typeof(VHISPLANINFO);
            var specialColumn = "MOBILENUMBER4";
            var selectColumns = string.Join(",", type.GetProperties().Select(p => p.Name))
                                .Replace(specialColumn, $"ROWNUM AS {specialColumn}");
            var condition = maxId == null ? string.Empty : $"WHERE {specialColumn}>{maxId.MaxId}";
            var sql       = $"SELECT * FROM (SELECT {selectColumns} FROM {nameof(VHISPLANINFO)}) {condition}";

            return(OracleBaseBll.QueryBySql(sql));
        }
Esempio n. 3
0
        /// <summary>
        /// 从数据源中获取新增的数据,默认以主键Id大于缓存的最大Id为查询条件
        /// 若子类需要以其它条件查询数据则可重写此方法
        /// </summary>
        /// <param name="maxId">包含上次查询的最大Id的<see cref="Guoli.Model.OracleTableMaxId"></see>实体对象/></param>
        /// <returns>查询到的新增数据集合</returns>
        protected virtual IEnumerable <TOracle> GetDataFromSourdeDb(OracleTableMaxId maxId)
        {
            var condition = string.Empty;

            if (maxId != null)
            {
                condition = $"to_number({OracleTablePrimaryKeyName})>'{maxId.MaxId}'";
            }

            return(OracleBaseBll.QueryList(condition));
        }