Ejemplo n.º 1
0
        /// <summary>
        /// 构造线路-车站关系并写入数据库
        /// </summary>
        /// <param name="table"></param>
        private static void WriteLineStaionRelation(TimeTable table)
        {
            // 构造线路-车站关系并写入数据库
            var lineStationRelation = new List <LineStations>();

            for (var i = 0; i < table.Stations.Count; i++)
            {
                lineStationRelation.Add(new LineStations
                {
                    LineId      = table.Line.Id,
                    Sort        = i,
                    StationId   = table.Stations[i].Id,
                    StationName = table.Stations[i].StationName
                });
            }
            var lineStationsBll = new LineStationsBll();

            var startId = (int)lineStationsBll.GetMaxId(); // 记录插入之前的最大ID

            lineStationsBll.BulkInsert(lineStationRelation);
            DataUpdateLog.BulkUpdate(nameof(LineStations), startId); // 将数据更新记录同步到DbUpdataLog表中
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 将指定集合中的车站信息写入数据库,并确保数据库中不会存在同名的车站
        /// 对于已经存在的车站则查询数据库,将新值存入返回的集合中
        /// 对于新的车站则插入数据库,将插入后的新值存入返回的集合中
        /// 最终返回的集合中所有的车站均带有唯一主键
        /// </summary>
        /// <param name="stations">待写稿的车站信息集合</param>
        /// <returns><see cref="List{BaseStation}"/>对象</returns>
        private static List <BaseStation> WriteStations(List <BaseStation> stations)
        {
            var stationBll  = new BaseStationBll();
            var newStations = new List <BaseStation>();

            stations.ForEach(s =>
            {
                var temp = _stationCaches.Find(item => item.StationName == s.StationName);
                if (temp != null)
                {
                    newStations.Add(temp);
                }
                else
                {
                    stationBll.Insert(s);
                    DataUpdateLog.SingleUpdate(nameof(BaseStation), s.Id, DataUpdateType.Insert);

                    newStations.Add(s);
                    _stationCaches.Add(s);
                }
            });

            return(newStations);
        }