To je zato sto ti je razmisljanje jos uvek fokusirano na DataSet funkcionalnost. Fundamentalna razlika u LINQu je sto entiteti ne cuvaju svoje database stanje, kao sto je to radio DataRow i DataTable, nemas rowstate, nemas dirty flag, nista od toga ne postoji u entitetima, zato su tako i "mrsavi" (sto je sa druge strane dobro kad treba da ih serijalizujes). Sam DataContext objekat cuva reference svih entiteta koje dobije bilo od tebe bilo od baze zajedno sa sync stateom tog entiteta. Kad si ga ucitao u prvoj varijanti, context ga je zapamtio i tako znao da taj podatak vec postoji u bazi, kad si ga kreirao sa New i dodao u kontekst kontekst ga je prihvatio kao novo kreirani entitet i zakljucio da treba da ga posalje bazi kao INSERT.
Isto tako iz tog razloga entiteti implementiray propertychange, tako context uhvati informaciju da si promenio neko polje u objektu i odmah ga markira za update.
Inace, kad radis:
h.Country = (From c In db.Countries Where c.ID = 152 Select c).First()
forsiras select nad Country tabelom u bazi da bi kreirao Country objekat, a vec imas njegov ID, umesto toga uradi samo
h.CountryId = 152;
▪ The word 'politics' is derived from the word 'poly', meaning 'many', and the word 'ticks', meaning 'blood sucking parasites' - Larry Hardiman
▪ If the good guy gets the girl, it's rated PG; if the bad guy gets the girl, it's rated R; and if everybody gets the girl, it's rated X
▪ Illegal aliens have always been a problem in the United States. Ask any Native American