Dovrei imparare Linq, Comandi SQL diretti (in .net), EF o altro? [chiuso]

3

Fondamentalmente, ho un'ottima conoscenza del semplice vecchio SQL derivante dalla programmazione ASP classica.

Negli ultimi due mesi, ho imparato C # e oggi è stato il mio primo giorno intero in MVC 3 (Razor) che sto amando!

Ho bisogno di tornare in Database e so che scrivere SqlCommand dappertutto è ovviamente obsoleto (anche se è bello posso ancora farlo!).

Ero solito andare in un grande gruppo di utenti come IT Pro e le cose degli sviluppatori mi andavano completamente sopra la testa, tuttavia ricordo alcune cose che continuavano a venire come LINQ ... Comunque, è stato qualche tempo fa e ora le stesse persone su Twitter stanno dicendo che è datato.

Ho provato a fare ricerche su entrambi e non ho idea di quale direzione dovrei andare, o quando usarne uno su un altro (se imparare entrambi è una buona cosa).

Sono molto più confuso pensando che EF fosse parte di .Net Framework, tuttavia, leggendo la guida rapida, ho dovuto scaricare un componente usando Nuget.

... Fondamentalmente sono fuori dalla mia profondità qui e ho solo bisogno di qualche consiglio onesto su dove andare!

    
posta wilhil 13.03.2011 - 00:03
fonte

4 risposte

7

Devi assolutamente imparare la lingua di Linq. Nel mio progetto lo usiamo solo circa il 50% delle volte per ottenere dati dentro o fuori da un database. Puoi altrettanto facilmente usarlo contro altre fonti come XML e oggetti, entrambi ne facciamo molti di più.

Suppongo che tu stia intendendo Linq To Sql. It ed EF forniscono funzionalità molto simili nel lavorare con i database. Attualmente utilizziamo entrambi in vari progetti. Ho un strong background in SQL, quindi guardo entrambi e vado, "Meh". Non sono completamente venduto neanche. Non mi piacciono, stanno bene. Ma alla fine è solo ottenere dati dentro o fuori da un database che può essere fatto in un sacco di modi diversi.

Una cosa da tenere a mente è che sia L2S che EF utilizzano la generazione del codice per creare le loro entità. Tramite T4 hai la possibilità di creare il tuo codice e di generare il tuo proc memorizzato e il livello di accesso ai dati, se ti piace il procs migliore.

Dove mi piace L2S e EF è quando hai bisogno di una query veloce che unisce le tabelle, che la creazione di un proc memorizzato potrebbe essere eccessivo. Puoi anche usarlo per popolare gli oggetti POCO direttamente nelle query, il che è molto bello.

Personalmente, se si tratta solo di far entrare o uscire i dati da un database, usa quello che sai, ma impara Linq per l'uso contro altre fonti di dati.

    
risposta data 13.03.2011 - 00:35
fonte
3

Speriamo che questo possa fornire una certa chiarezza.

  1. Il pacchetto nuget scaricato era per un'anteprima di Entity Framework 4.1. Come MVC, EF ha talvolta le consegne Out of Band (funzionalità aggiuntiva fornita separata dal framework .NET primario).
  2. LINQ vale la pena imparare in generale perché è utile al di fuori degli scenari di accesso ai dati (ad esempio PLinq per le operazioni simultanee su insiemi). Può essere utilizzato con EF o su oggetti in generale.
  3. LINQ2SQL era un framework stop-gap per fornire un livello di accesso ai dati utilizzando la nuova sintassi LINQ (al momento) EntityFramework è la strategia di accesso ai dati primaria per la piattaforma .NET in futuro.
  4. Vale la pena imparare a usare SQLCommands solo per capire come funzionano. Proprio come vale la pena imparare GDI in modo da sapere come Winforms fa la sua magia.
risposta data 13.03.2011 - 01:09
fonte
2

Impara "Entity Framework" e non guardare indietro, neanche per un secondo. Gli ORM sono sicuramente come stanno andando le cose in questi giorni.

Oh e google "Linq to SQL è morto" - non necessariamente sta morendo, ma leggere il motivo per cui le persone pensano che stia morendo è degno di nota.

E per quanto riguarda la scrittura di semplici istruzioni stringa in sql nel tuo codice, è davvero morto.

    
risposta data 13.03.2011 - 03:14
fonte
2

Oltre a ciò che è già stato detto: Se hai un sito di dimensioni medio-piccole e stai semplicemente eseguendo il recupero dei dati di base, Linq 2 SQL dovrebbe adattarti perfettamente. Entity Framework è fatturata come più di una soluzione Enterprise. Il problema più grave con Linq to SQL nella mia esperienza è che non è possibile aggiornare automaticamente il modello dati se il database cambia (EF supporta questo) ... Se si modifica una tabella, in genere è necessario rilasciare quella tabella nel L2S designer e aggiungilo di nuovo.

Vedi LINQ to SQL rispetto a ADO.NET Entity Framework per un buon confronto tra L2S e EF:

    
risposta data 13.03.2011 - 03:22
fonte

Leggi altre domande sui tag