2009-07-31 10 views

risposta

5

LINQ ha un grande vantaggio rispetto la maggior parte degli altri metodi di accesso ai dati: essa ruota attorno alla 'interrogazione espressione 'metafora, il che significa che le query possono essere passate come oggetti e modificate e modificate, tutte prima di vengono eseguite (iterate). In pratica, ciò significa che il codice può essere modulare e meglio isolato. Il repository di accesso ai dati restituirà la query "orders", quindi un filtro intermedio nella pipeline di elaborazione delle richieste decorerà questa query con un filtro, quindi verrà passato a un modulo di visualizzazione che aggiunge ordinamento e impaginazione, ecc. Alla fine, quando la sua iterazione, l'espressione si è totalmente trasformata in molto specifica SELECT ... WHERE ... ORDER BY ... LIMIT ... (o l'altra impaginazione specifica del back-end come ROW_NUMBER). Per gli sviluppatori di applicazioni, questo è inestimabile e semplicemente non esiste un'alternativa praticabile. Questo è il motivo per cui credo che LINQ sia qui per rimanere e non scomparirà tra 2 anni. È decisamente più di una moda passeggera. E mi riferisco specificamente a LINQ come metodo di accesso al database.

Il vantaggio di manipolare da solo gli oggetti espressione di query è un fattore sufficiente per rendere LINQ un'offerta vincente. Aggiungete a questo i molteplici tipi di contenitori che può manipolare (XML, array e collezioni, oggetti, SQL) e l'interfaccia uniforme che espone su tutte queste tecnologie disparate, considerate le modifiche di elaborazione parallela in arrivo. Net 4.0 che sono sicuro sarà integrato in modo trasparente nell'elaborazione LINQ di array e raccolte, ed è davvero impossibile che LINQ sparisca. Certo, oggi a volte produce SQL illeggibili, scarsamente performanti e non discutibili, ed è ogni incubo DBA dedicato. Andrà meglio.

+0

lol @ "ogni incubo DBA dedicato". – Tundey

+0

Ottima risposta (ho avuto io stesso la stessa domanda) e bello saperlo "a volte produce SQL illeggibili, scarsamente performanti e non discutibili". :) – JohnB

4

Linq fornisce accesso "di prima classe" ai dati. Significa che le tue domande fanno ora parte del linguaggio di programmazione.

Linq fornisce un modo comune per accedere agli oggetti dati di tutti i tipi. Ad esempio, la stessa sintassi utilizzata per accedere alle query del database può anche essere utilizzata per accedere a elenchi, matrici e file XML.

L'apprendimento di Linq fornisce una comprensione più approfondita del linguaggio di programmazione. Linq era il driver per tutti i tipi di innovazioni linguistiche, come i metodi di estensione, i tipi anonimi, le espressioni lambda, gli alberi di espressione, l'inferenza di tipo e gli inizializzatori di oggetti.

+0

Mi piace il secondo motivo migliore. – JohnB

0

Questa è una domanda reale? Non si può rispondere con uno snippet di codice. La maggior parte di queste domande sul tipo di discussione vengono chiuse rapidamente.

+3

... probabilmente meglio espresso come commento. –

+1

@Robert Harvey, sì probabilmente è meglio essere un commento, ma il contenuto è true –

2

Penso che una domanda migliore è perché si dovrebbe sostituire SQL con LINQ quando si esegue una query su un database?

+1

intellisense sicuro per il tipo in Visual Studio, invece di passare i tuoi grossi blob di testo (query SQL) senza alcun tipo di controllo e nessuna sicurezza (colpi solo in fase di esecuzione in produzione .....) –

+1

@mark_s: sebbene ci siano altri modi per farlo. Set di dati fortemente tipizzati per esempio. –

+1

Linq è il metodo preferito per accedere ai dati tramite un ORM come Linq a SQL o Entity Framework. –

1

"Conosci il tuo nemico"?

OTOH, fuori interesse. Sto imparando di più su XMl, XSLT, XSD ecc. Perché posso vederne un uso come sviluppatore di database.

0

Credo che uno dei tanti motivi per cui si potrebbe prendere in considerazione LINQ perché LINQ è grande spinta della produttività e il tempo enorme risparmio di

0

Questa domanda richiede anche di chiedere, se LINQ diventa immensamente popolare, gli sviluppatori lato server sapranno SQL e hanno fatto i loro predecessori?

+2

Quanto conosci l'assemblaggio? –

Problemi correlati