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!”