Vidi vako... ti kad imaš neki program, moraš negde da čuvaš podatke. To su obično baze podataka gde su podaci poređani u nekakvim tabelama (slično kao tabele u excelu). Postoje i druge vrsta baza ali ove se najviše koriste. I onda kad se program koristi, on komunicira sa tom bazom i čita podatke i upisuje u nju. Za to se koristi poseban jezik koji se zove SQL. On nije težak za učenje ali može biti veoma složen, pogotovo ako ti trebaju podaci iz više tabela pa sve treba ukrstiti. Elem, onda su se neki lenji programeri dosetili da uproste stvari i sve nas poštede zezancije sa tim SQL jezikom i napravili Entity Framework koji ti omogućava da povežeš objekte u C# aplikaciji direktno sa podacima u bazi. I ti dalje sve radiš kroz C#, pristupaš podacima, čitaš, upisuješ... a taj EF sve to automatski u pozadini pretvara u SQL jezik i komunicira sa bazom. I to lepo radi, sa time su progremeri mnogo efikasniji u radu a cena je mali gubitak na performansama. SQL komande koje pravi EF nisu toliko optimizovane kako bi mogle da budu ako se prave manuelno, pa ako praviš aplikacije gde je brzina veoma bitna (realtime igre, berza, api sa multimilionskim pristupom u sekundi...) onda je bolje koristiti direktan pristup bazi. Za ostale (što čini cirka 90% programera), EF je mnogo dobra stvar koja značajna štedi na vremenu i povećava efikasnost programiranja.