|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
[Linq vs Sql]Incongruenze
Ciao a tutti
Mi trovo dinanzi ad uno strano problema, oddio, dico 'strano' forse perchè non ci arrivo da me. Sto lavorando con Entity Framework. Allora, se eseguo una query direttamente su sql server, vedo i risultati corretti, se invece, lato client, richiamo la query, i risultati sono diversi, mi spiego: Codice:
//da sql server select * from vista Data --------- Posto ----- Numero ----- Valore 01/10/2010 poltrona 25 2,7 01/10/2010 cabina 25 0,9 02/10/2010 poltrona 25 6,1 03/10/2010 cabina 25 1,8 //etc... Codice:
var result = (from sit in context.MyObject
where sit.Date.Year == 2010 && sit.Date.Month == 10
select sit);
//oppure
var result = context.MyObject.Where(sit => sit.Date.Year == 2010 && sit.Date.Month == 10);
Codice:
Data --------- Posto ----- Numero ----- Valore 01/10/2010 poltrona 25 2,7 01/10/2010 poltrona 25 2,7 02/10/2010 poltrona 25 6,1 03/10/2010 cabina 25 1,8 Dove sbaglio ? Grazie mille RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
uppettino
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
edit : scusatemi... non ho risolto..
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
Ultima modifica di RaouL_BennetH : 29-10-2010 alle 11:24. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Forse ho capito:
se anzichè usare una vista utilizzo una tabella, i risultati sono corretti. Credo dipenda dal fatto che una vista non ha una chiave primaria.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Non ho capito bene il problema.
Cosa hai, cosa sottometti e cosa ottieni? Comunque termina la tua query sul DB con un .ToArray(), in modo da far tornare i risultati dal mondo database-funzionale a quello vettoriale (o scalare) in memoria.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Credo che il problema sia un altro.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Ciao ragazzi e grazie per avermi risposto
@gugoXX partendo da quello che ho: lato db, una tabella molto semplice, pari pari a quella indicata all'inizio del 3d. Se mappo quella tabella con ef, e mi faccio restituire una lista lato client (ho provato sia con una web app che con una winforms), i risultati che vedo in output sono corretti. Ho fatto poi una vista su quella tabella, banalmente con create view bla as select * from tabella. Ecco, se mappo la view con ef, i risultati non sono corretti. Succede che se ci sono più eventi per una stessa data, in output ottengo soltanto gli eventi presenti in corrispondenza della prima data e non delle altre, cioè: Codice:
30/10/2010 asd bla xxx 30/10/2010 asd bla xxx //mentre invece dovrebbe essere 30/10/2010 asd bla xxx 30/10/2010 ggg mna 123 Ho appena provato il metodo .ToArray() ma il risultato non cambia. @cdimauro Ne sono certo. Ho da poco intrapreso la mia avventura con LinQ e Entity Framework ( di cui mi sono innamorato perso!!) . E' molto vasto e al momento riesco a fare solo qualcosa di molto primitivo
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Purtroppo non lavoro in C# per cui non saprei come darti una mano.
Posso soltanto dirti che ho realizzato in Python qualcosa di simile a LINQ & ORM (di SQL mancano soltanto le JOIN da implementare), per cui ti capisco benissimo.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Mar 2005
Città: Morimondo city
Messaggi: 5491
|
Quote:
![]() Ps: scusate l'OT!
__________________
Khelidan |
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Dormire è parola grossa per un papà.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
ragazzi, non riesco a venirne a capo
E' assurdo. Devo ricorrere ad una stored perchè dalla vista i dati non li tiro fuori.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
Non ho pero' capito perche' tu debba passare attraverso una alternativa stored procedure, dato che e' una filosofia un poì contraria, seppur compatibile, con LINQ
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
|
#13 | |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
Domani posto l'intera struttura "incriminata", io sono sicuro di aver sbagliato qualcosa o nella creazione della vista o nel come sto utilizzando ef o, cosa ancora più probabile, ho sbagliato entrambe le cose.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:55.





















