public int DeleteById(int routeId)
        {
            aspnetdbDataContext aspdb = new aspnetdbDataContext();
            var res=from p in aspdb.TrackPointlinqs
                        where p.RouteFK==routeId
                        select p;
            aspdb.TrackPointlinqs.DeleteOnSubmit(res.FirstOrDefault());
            aspdb.SubmitChanges();
            //Probieren ob das Einfügen Erfolgreich durchgeführt wurde oder nicht
            int k1;
            System.Data.Linq.ChangeSet cs1 = aspdb.GetChangeSet();
            k1 = cs1.Inserts.Count();
            //------------------------------------------------------

            var res2 = from p in aspdb.RouteLinqs
                       where p.RouteId==routeId
                       select p;
            aspdb.RouteLinqs.DeleteOnSubmit(res2.First());
            aspdb.SubmitChanges();
            //Probieren ob das Einfügen Erfolgreich durchgeführt wurde oder nicht
            int k2;
            System.Data.Linq.ChangeSet cs2 = aspdb.GetChangeSet();
            k2 = cs2.Inserts.Count();
            //------------------------------------------------------
            if ((k1 == 0) && (k2 == 0))
            {
                return 1;
            }
            else
                return 0;
        }
 public int DeleteAllForUser(Guid userId)
 {
     //First, remove all track points
     aspnetdbDataContext aspnetdb = new aspnetdbDataContext();
     var DelTrack = from q1 in aspnetdb.RouteLinqs
                            where q1.UserId == userId
                            join p in aspnetdb.TrackPointlinqs
                              on q1.RouteId equals p.RouteFK
                            select p;
     aspnetdb.TrackPointlinqs.DeleteAllOnSubmit(DelTrack);
     aspnetdb.SubmitChanges();
     //Die Route Löschen
     var DelRout = from q in aspnetdb.RouteLinqs
                   where q.UserId == userId
                   select q;
     aspnetdb.RouteLinqs.DeleteAllOnSubmit(DelRout);
     aspnetdb.SubmitChanges();
     return 1;
 }
        public int Save(Route route)
        {
            aspnetdbDataContext aspdb = new aspnetdbDataContext();
            RouteLinq rtlq=new RouteLinq();
            rtlq.UserId = route.UserId;
            rtlq.SourceName = route.Name;
            rtlq.GpxData = XElement.Parse(route.GpxData);
            //---------------------------
            rtlq.CreationTime = route.Time;
            aspdb.RouteLinqs.InsertOnSubmit(rtlq);
            aspdb.SubmitChanges();
            //Probieren ob das Einfügen Erfolgreich durchgeführt wurde oder nicht
            int k1;
            System.Data.Linq.ChangeSet cs1 = aspdb.GetChangeSet();
            k1=cs1.Inserts.Count();
            //---Die Suche nach ID
            var res = (from p in aspdb.RouteLinqs
                       orderby p.RouteId descending
                       select p.RouteId).Take(1);
            route.Id =Convert.ToInt32(res.FirstOrDefault());
            //------------------------------------------------------

            foreach (var trackpoint in route.TrackPoints)
            {
                TrackPointlinq trlq = new TrackPointlinq();
                trlq.RouteFK = route.Id;
                trlq.TrackTime = trackpoint.Time;
                trlq.Latitude = (float)trackpoint.Latitude;
                trlq.Longitude = (float)trackpoint.Longitude;
                trlq.Elevation = trackpoint.Elevation;
                aspdb.TrackPointlinqs.InsertOnSubmit(trlq);
                aspdb.SubmitChanges();
            }

            //Probieren ob das Einfügen Erfolgreich durchgeführt wurde oder nicht
            int k2;
            System.Data.Linq.ChangeSet cs2 = aspdb.GetChangeSet();
            k2 = cs2.Inserts.Count();
            //------------------------------------------------------
            if ((k1 == 0) && (k2 == 0))
            {
                return 1;
            }
            else
                return 0;
        }