Ho una vista specifica creata nel mio DB (si aggiunge a circa 5-6 tabelle con un join sinistro). Questa vista viene aggiunta al mio edmx (entity framework 1.0). Di recente ho notato che uno dei dischi della colonna ottenuti con l'edmx (LINQ to entità e poi ToList()) più volte ottenuto duplica se nella vista del database erano diversiDiscordanza dei risultati del framework Entity per le viste del database
Column-N (Expected result/ result from DB view)
---------
data1
data2
data3
data4
data5
Column-N(Actual result generated by entity framework)
---------
data1
data1
data1
data1
data1
Ho sparato il mio profiler SQL, preso la query che è stata inviata dalla mia applicazione a SQL Server, l'ha eseguita e mi ha restituito il risultato previsto.
MSDN ha un post simile here e here ma il moderatore non ha elaborato su come risolvere questo problema. La mia chiave sembra essere un GUID
La causa principale hai fatto notare penso è corretto, il problema è sulla mappatura lato EF applicazione, EF ha diverse norme oggetto di mappatura con database. quando i risultati della query sono stati restituiti dal database , l'EF eseguirà il mapping sulla memoria dell'applicazione in base alla propria logica .
È importante prendere in considerazione questa logica quando si seleziona la query di visualizzazione sul lato del database. I pensa che dovresti fare qualche aggiustamento sulla tua query di visualizzazione .
Non sono sicuro se hai ordinato il problema, se non si prega di fornire la struttura database relativo a questo problema e la query vista che si ha scritta.
Grazie Binze
Qualcuno ha riscontrato un problema simile prima d'ora?
Hai ragione.Stavo assumendo erroneamente che stava raccogliendo il mio GUID come chiave primaria fino a quando non sono andato e ho visto lo StorageModel e il Modello concettuale. Stava usando qualche altra colonna come chiave primaria e quindi il casino. risolto correggendo la chiave manualmente (senza utilizzare GUI VS2008) – ram