Hirdetés

Új hozzászólás Aktív témák

  • amargo

    addikt

    válasz ubid #2930 üzenetére

    Hasonlítsd össze a két lista elem tartalmát, LINQ Except. Nyilván csak a változást kell elmentened.

    Kihagyok alapvető részleteket, inkább csak a problémára adok egy megoldás vázlatot.

    private void setInDB()
    {
    var query = (from q in DB.Buszs select q).ToList();
    var insertKeys = Buszs.Select(s => s.Jarat).Except(query.Select(s => s.Jarat)).Select(s => new BuszModel { Jarat = s });

    var removeKeys = query.Select(s => s.Jarat).Except(Buszs .Select(s => s.Jarat ));


    foreach (var rKey in removeKeys)
    {
    var jarat = DB.Buszs.Where(w => w.Jarat.Equals(rKey)).FirstOrDefault();
    DB.Buszs.DeleteOnSubmit(jarat);
    }

    foreach (var iKey in insertKeys)
    {
    DB.Buszs.InsertOnSubmit(iKey);
    }

    DB.SubmitChanges();

    Messenger.Default.Send<GenericMessage<Table<JaratModel>>>(new GenericMessage<Table<JaratModel>>(DB.Buszs));
    }

    Továbbá, nem ártana csak akkor leszedni az adatokat ha változás van.

    [ Szerkesztve ]

    “The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”

Új hozzászólás Aktív témák