In realtà, la sintassi di LINQ è più strettamente basata su XQuery che su SQL, e XQuery fa anche in questo modo.
Le ragioni principali sono già state fornite: in C#, VB.NET e in effetti nella maggior parte dei linguaggi di programmazione, l'ambito scorre dall'alto verso il basso e da sinistra a destra, proprio come normalmente si legge. Il modo in cui viene scritto l'SQL, salti di scope intorno: un identificatore ottiene già utilizzato nella parte SELECT
della query, ma viene introdotto solo più tardi, nella parte FROM
della query. Ecco perché i progettisti di XQuery hanno deciso di girarlo e LINQ segue solo.
Si abbina anche il modello mentale meglio: avete elenco di fonti di dati (FROM
), poi a filtrare i dati che ti interessa (WHERE
), allora si ordinano questi dati (ORDERBY
) e, infine, si sia di progetto in una rappresentazione diversa (SELECT
) o partizionare i risultati (GROUP BY
). Successivamente, è possibile iniettare i risultati nella query successiva (INTO
).
fonte
2009-10-02 14:50:46
+1: buona risposta – Arthur
ok, capisco cosa stai dicendo. Ha più senso ora. Sembrava che quando hanno parlato di LINQ, stessero cercando di sostituire la scrittura scrivendo query SQL sul lato del database con l'uso delle query linq sul lato codice. – Xaisoft
È meglio pensare a LINQ come a un tentativo di supportare * query * nel codice, non nel codice SQL. La stragrande maggioranza di SQL non è supportata, né dovrebbe essere. – dahlbyk