Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Entity Framework
giovedì 05 marzo 2015 - 16.40
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
digisam
Profilo
| Newbie
1
messaggi | Data Invio:
gio 5 mar 2015 - 16:40
Ciao a tutti
devo realizzare un webservice in asp.net accessibile da android.
Ho pensato di utilizzare per interfacciarmi con il db sql server l'entity framework. Ho mappato tutte le relazioni tra le tabelle e generato il modello edmx in visual studio.
Ho fatto un po di prove e ho notato che quando vado a richiamare o a fare una query da codice mi restituisce il record e in piu le tutti i record delle tabelle collegate come proprietà.
Il dubbio che mi viene se io voglio ricavare tutti i record da una tabella ad esempio "tipo" non mi serve che ogni classe della list mi vengano valorizzati anche i figli della tabella ad esempio "clienti".
In questi casi c'è un modo per risolvere?? o uso male io entity framework???
0v3rCl0ck
Profilo
| Guru
1.120
messaggi | Data Invio:
mer 18 mar 2015 - 18:49
>Ciao a tutti
>
ciao
>devo realizzare un webservice in asp.net accessibile da android.
>
>Ho pensato di utilizzare per interfacciarmi con il db sql server
>l'entity framework.
ottimo
>Ho mappato tutte le relazioni tra le tabelle
>e generato il modello edmx in visual studio.
nooooooo
code-first rulezzz!
Code First to a New Database:
http://msdn.microsoft.com/en-us/data/jj193542
Code First to an Existing Database:
http://msdn.microsoft.com/en-us/data/jj200620
se devi partire da un database esistente ti consiglio vivamente questa estensione visual studio per la generazione della configurazione code-first:
http://efreversepoco.codeplex.com/
ma va benone anche quello integrato di visual studio come spiegato in msdn (Code First to an Existing Database).
>
>Ho fatto un po di prove e ho notato che quando vado a richiamare
>o a fare una query da codice mi restituisce il record e in piu
>le tutti i record delle tabelle collegate come proprietà.
solo perchè le vai a "stuzzicare"
di default entity abilita il lazy loading per le proprietà di navigazione definite come virtual, cosa che immagino faccia generando il codice dal modello edmx (io ho iniziato ad usare EF solo quando hanno introdotto code-first, beato me!), quindi ti carica quelle proprietà se le "tocchi" durante la query, o anche dopo la query, semplicemente cliccando su "result view" in debug, oppure ciclando una collezione o cercando di accedere ad un padre con l'apposita proprietà di navigazione.
per accertarti di questo puoi fare una traccia su sql, o direttamente controllare in debug la window di Intellisense in visual studio, che ti mostra tutte le query che vengono eseguite, o ancora loggare configurando un logger direttamente in console "context.Database.Log = Console.Write; " oppure con uno degli altri metodi di logging:
http://msdn.microsoft.com/en-us/data/dn469464
>
>Il dubbio che mi viene se io voglio ricavare tutti i record da
>una tabella ad esempio "tipo" non mi serve che ogni classe della
>list mi vengano valorizzati anche i figli della tabella ad esempio
>"clienti".
>
>In questi casi c'è un modo per risolvere?? o uso male io entity
>framework???
semplicemente non andare a stuzzicare le proprietà di navigazione che non ti interessano e vedrai che la query verrà eseguita solo per l'entità "tipo".
al contrario se invece vuoi evitare di eseguire ulteriori query per accedere ai figli, perchè tanto sai che ci accederai sicuramente, ti può ritornare utile il metodo Include() di EF, che ti permette appunto di caricare con una sola query anche le relazioni, vedi:
http://msdn.microsoft.com/en-us/data/jj574232
Michael Denny | Microsoft Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.net
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !