Entity Framework vs. Linq to SQL? [închis] (Inginerie software, Sql, Cadru De Entități, Linq)

Vivian River a intrebat.

Sunt un pic confuz în legătură cu acești doi termeni „Linq to SQL” și „Entity Framework”. Am ideea generală că ambele îți permit cumva să te referi la tabelele din baza de date ca obiecte .net sau ceva de genul acesta, dar te rog să-mi explici diferența dintre acești doi termeni.

Comentarii

  • Această întrebare este prea largă. Există literalmente zeci de cărți despre fiecare dintre aceste subiecte și pentru a răspunde efectiv la această întrebare ar fi nevoie de o altă carte. –  > Por SoylentGray.
  • @Chad: Te înșeli. Vă rugăm să consultați răspunsul lui Jalayn. –  > Por Jim G..
  • @JimG – Este cel mai bun mod de a aborda această întrebare și a votat răspunsul, dar nu răspunde cu adevărat la întrebare, mai degrabă indică alte întrebări și locuri în care op-ul poate face cercetări. –  > Por SoylentGray.
  • Salut Rice Flour Cookies, acest tip de întrebare despre instrumente de dezvoltare este în afara subiectului aici: pentru asta vrei Stack Overflow. Cu toate acestea, răspunsul lui Jalayn trimite la mai multe discuții despre această problemă: nu uita să le verifici. – user8
1 răspunsuri
Jalayn

Acest subiect a fost deja abordat de mai multe ori, poate te interesează să citești:

  • https://stackoverflow.com/questions/8676/entity-framework-vs-linq-to-sql. Răspunsul de sus este scurt și chiar la fața locului, deși este puțin datat (2008)
  • https://stackoverflow.com/questions/3293995/what-is-the-difference-between-entity-framework-and-linq-to-sql-by-net-4-0. Mai exact legat de versiunea 4.0 a cadrului.
  • http://social.msdn.microsoft.com/Forums/en/adodotnetentityframework/thread/dc83097e-9c70-4970-93e2-dbc8636eb321 (Am preluat acest link din răspunsul oferit de @jlnorsworthy în Ar trebui să învăț Linq, Comenzi SQL directe (în .net), EF sau altele?)

Acestea sunt similare în sensul că ambele sunt ORM-bazat, dar EF este mai „enterprisey” și mai complet decât Linq. EF este mai mult comparabil cu NHibernate în ceea ce privește caracteristicile disponibile și s-a maturizat odată cu lansarea .NET 4.0. De asemenea, unul dintre cele mai importante lucruri de care trebuie să țineți cont este că Linq vă va crea probleme dacă SGBD-ul dumneavoastră nu face parte din familia SQL Server (fie că este „Express” sau „Compact”).

Editare: după cum a precizat @jkohlhepp în comentariul de mai jos, Linq to SQL este în modul de întreținere (nu Linq! mulțumiri lui Randy), deci nu se vor mai face caracteristici noi, ci doar corecții de erori. Ca atare, este într-adevăr recomandat să începeți proiecte noi cu EF.

Comentarii

  • Toate punctele bune. Dar, de asemenea, țineți cont de faptul că Linq to SQL este practic în modul de întreținere. Microsoft a declarat că intenționează doar să investească în continuare în EF. Așa că nu aș recomanda să faceți lucruri noi în L2S, ci să folosiți cu siguranță EF. –  > Por RationalGeek.
  • @jkohlhepp Mulțumesc, este o observație bună, voi edita răspunsul meu și voi include observația dvs. –  > Por Jalayn.
  • „Linq este în modul de întreținere…” Acest lucru nu este adevărat. Linq to SQL este în modul de întreținere. Linq (pe care L2S este construit deasupra) cu siguranță nu este. –  > Por Randy Minder.