/// <summary>
 /// Добавление данных трекера
 /// </summary>
 /// <param name="data">объект данных</param>
 public static void CreateGpsData(DataGpsData data)
 {
     using (var dc = new GpsTrackerDataContext())
     {
         data.CreateDate = DateTime.UtcNow;
         dc.GpsData.InsertOnSubmit(data);
         dc.SubmitChanges();
     }
 }
        /// <summary>
        /// Изменение данных трекера
        /// </summary>
        /// <param name="data">объект данных</param>
        public static void UpdateGpsData(DataGpsData data)
        {
            DataLocker.Lock(typeof(DataGpsData), data.Id, () =>
            {
                DataGpsData obj;
                using (var dc = new GpsTrackerDataContext())
                {
                    obj = (from _obj in dc.GpsData where _obj.Id == data.Id select _obj).FirstOrDefault();
                    if (obj == null)
                    {
                        throw new KeyNotFoundException(String.Format("{0}: Запись с таким id:{1} не найдена",
                                                                     MethodBase.GetCurrentMethod(), data.Id));
                    }
                }

                using (var dc = new GpsTrackerDataContext())
                {
                    dc.GpsData.Attach(data, obj);
                    dc.SubmitChanges();
                }
            });
        }