/// <summary>
 /// Добавление трекера
 /// </summary>
 /// <param name="data">объект данных</param>
 public static void CreateGpsTracker(DataGpsTracker data)
 {
     using (var dc = new GpsTrackerDataContext())
     {
         data.DateCreated = DateTime.UtcNow;
         dc.GpsTracker.InsertOnSubmit(data);
         dc.SubmitChanges();
     }
 }
        /// <summary>
        /// Изменение трекера
        /// </summary>
        /// <param name="data">объект данных</param>
        public static void UpdateGpsTracker(DataGpsTracker data)
        {
            DataLocker.Lock(typeof(DataGpsTracker), data.Id, () =>
            {
                DataGpsTracker obj;
                using (var dc = new GpsTrackerDataContext())
                {
                    obj = (from _obj in dc.GpsTracker 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.GpsTracker.Attach(data, obj);
                    dc.SubmitChanges();
                }
            });
        }