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.
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?
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.
Associazione Culturale DotNetCampania - C.F.: 95127870632