/// <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表中 }
/// <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); }