DotNetCampania
Il primo portale campano dedicato allo sviluppo software con tecnologie Microsoft

[vb2008] Linq e Inferenza

rated by 0 users
Risposto This post has 1 verified answer | 2 Replies | 1 Follower

Top 10 Partecipanti
Maschio
79 Post
Punteggio 1.070
Francesco Valentino posted on 4 mag 2010 15:58

Allora ho notato un qualcosa che non so spiegarmi e non sapendo come cercare una spiegazione provo a chiedere a voi.

Ho creato una query con l'utilizzo di linq con il seguente codice

Dim query = From a In MioDataSet.dtAltro _
Where a.SOCIETA = "Azienda"

 l'inferenza mi dichiara query come tipo
System.Data.EnumerableRowCollection(OFMioProgetto.MioDataSet.dtAltroRow)

pertanto io con query ho il metodo CopyToTable che mi consente di copiare il risultato della query in una datatable.

Mentre con quest'altra query

Dim query = From t In MioDataSet.dtAltro _
Group t By t.MATRIC, t.DATA, t.DALLE_ORE, t.ALLE_ORE, t.MININT, t.SOCIETA, t.ORELAVORO Into Group _
Select MATRIC, DATA, DALLE_ORE, ALLE_ORE, MININT, SOCIETA, ORELAVORO

dichiara query com tipo System.Collections.Generic.IEnumerable(OF )
e di conseguenza perdo alcuni dei vantaggi che avevo con la prima query.

Come mai accade questo?
E' normale ho sono io a commettere qualche errore?
Come posso rimediare?

Grazie per il vostro supporto.

Risposto Verified Answer

Top 10 Partecipanti
Maschio
379 Post
Punteggio 5.540

Ciao Francesco,

il problema è che nel secondo caso Linq definisce un tipo anonimo contenente le property da te indicate sopo la Select. Il modo più semplice di ottenere lo stesso risultato della prima query e indicare "Select t", ma se non lo hai fatto immagino che tu voglia ottenre un datatable con solo le colonne indicate... è cosi? o quelle sono proprio tutte le colonne del datatable?

  • | Punteggio Post: 40

All Replies

Top 10 Partecipanti
Maschio
379 Post
Punteggio 5.540

Ciao Francesco,

il problema è che nel secondo caso Linq definisce un tipo anonimo contenente le property da te indicate sopo la Select. Il modo più semplice di ottenere lo stesso risultato della prima query e indicare "Select t", ma se non lo hai fatto immagino che tu voglia ottenre un datatable con solo le colonne indicate... è cosi? o quelle sono proprio tutte le colonne del datatable?

  • | Punteggio Post: 40
Top 10 Partecipanti
Maschio
79 Post
Punteggio 1.070

Diciamo che quelle sono le sole colonne che voglio ottenere rispetto a tutte. Però penso che in questo caso posso risolvere semplicemente caricandomele dato che alla fine il tutto deve essere inviato ad un report.

Grazie per l'aiuto.

Pagina 1 di 1 (3 elementi) | RSS

Associazione Culturale DotNetCampania - C.F.: 95127870632

Powered by Community Server (Commercial Edition), by Telligent Systems