heilà :) ben trovato
dadox77 ha scritto:
la versione 2008 dell'IDE (framework 3.5) sembrerebbe non dare la possibilità di includere direttamente le foreign keys nel modello
ah, no, infatti con la versione 1.0 di Entity Framework
non puoi esporre le chiavi secondarie nel modello, dato che sono già coinvolte in un'associazione.
Dunque sei obbligato a caricare le entità collegate, come stavi già facendo.
dadox77 ha scritto:
nel management studio non ho a disposizione il sql profiler...
ok, in questo caso prova ad usare un profiler gratuito. So dell'esistenza di "Anjlab Sql Profiler":
https://sites.google.com/site/sqlprofiler/Ma non riesco a capire che cacchio hanno fatto, sembra che gli abbiano cambiato nome e, nonostante ci sia scritto "absolutely free", poi vengo ridirezionato al download di un prodotto trial. Prova lo stesso, magari la trial non ha scadenza.
In alternativa, puoi anche fare a meno di un profiler. Ci sono altri modi per ispezionare le query prodotte da Entity Framework. Uno è quello di castare L'IQueryable restituito da una query linq2entities sul tipo ObjectQuery e usare il suo metodo .
ToTraceString.
Oppure esistono anche
questi wrappers ma richiedono VS2010.
A proposito... non ti conviene passare a Visual Studio 2010, versione express? Così puoi usare Entity Framework 4, che supporta anche il "nuovo" approccio
code-first così non avrai bisogno del designer.
E' uscita anche le RC di Visual Studio 2012 Express, dagli un'occhiata.
http://www.microsoft.com/visualstudio/11/en-us/downloads#express-webdadox77 ha scritto:
Ho letto in proposito che Entity Framework non supporta il lazy loading
Sì sì,
lo supporta, ma dalla versione 4.
dadox77 ha scritto:
Tuttavia nel caso precedente avrei 2 query, giusto?
Già, l'
explicit loading causa l'esecuzione di una seconda query. Anche il
lazy loading farebbe lo stesso ma in questo caso il vantaggio è che la seconda query avverrebbe in maniera trasparente. Ho detto "vantaggio"? Spesso non lo è perché se non stai attento introduci nella tua applicazione il problema
select n+1 e senza accorgertene. Per questo è sempre importante monitorare le query che vanno al db. Alcuni potrebbero preferire una soluzione più radicale, che è quella di
disabilitare il lazy loading completamente.
Comunque, ti sarebbe possibile migrare il progetto al framework 4? Potresti avere tutti i vantaggi di cui abbiamo discusso finora.
ciao
Modificato da BrightSoul il 23 giugno 2012 16.51 -