<?xml version="1.0" encoding="iso-8859-15"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"><channel><title>blogs.ASPItalia.com</title><link>http://blogs.aspitalia.com//sm15455//</link><description>blogs.ASPItalia.com</description><language>it-it</language><copyright>1998-2013 ASPItalia.com/blogs.ASPItalia.com</copyright><generator>Generated by feed.ASPItalia.com 'Cortana' 2013.6.5</generator><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><sy:updateBase>1998-01-01T12:00+00:00</sy:updateBase><lastBuildDate>Mon, 18 Oct 2010 08:01:00 GMT</lastBuildDate><image><title>blogs.ASPItalia.com</title><url>http://gui.aspitalia.com/images/aspitalia/syndication.gif</url><link>http://blogs.aspitalia.com//sm15455//</link></image><item><title>Cosa penso delle prossime novit&amp;#224; del designer Entity Framework</title><link>http://blogs.aspitalia.com/sm15455/post2663/Penso-Prossime-Novita-Designer-Entity-Framework.aspx</link><pubDate>Mon, 18 Oct 2010 08:01:00 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2663" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;Torno finalmente a bloggare dopo mesi di inattività dovuti ad un periodo a dir poco folle prima e dopo le ferie... prometto che d'ora in poi tornerò ad essere più presente :).&lt;/p&gt;&lt;p&gt;Il Team di Entity Framework ha pubblicato questo &lt;a href="http://blogs.msdn.com/b/efdesign/archive/2010/10/11/entity-designer-improvements-preview.aspx" target="_blank"&gt;post&lt;/a&gt; dove spiega i prossimi sviluppi per il designer. La magigor parte di queste caratteristiche riguarda la leggibilità del modello soprattutto in presenza di molte entità. &lt;/p&gt;&lt;p&gt;Lla versione del designer inclusa in VS2010 mi piace molto (ovviamente con tutte le limitazioni del caso) perchè è abbastanza estensibile (ne parliamo anche in un capitolo del nostro &lt;a href="http://www.manning.com/mostarda" target="_blank"&gt;libro&lt;/a&gt;). Tuttavia, da quello che vedo, non c'è una cosa che mi sarebbe piaciuta moltissimo ovvero la possibilità di rendere il designer completo almeno dal punto di vista della generazione. Quello che mi sarebbe piaciuto da matti (anche se a detta del team sonostato l'unico al mondo a chiederlo) è avere la possibilità di fare 2 semplicissime cose:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Poter importare il database nell'EDM senza però generare nulla nel model (e questo volendo possiamo farlo estendendo il designer)&lt;/li&gt;&lt;li&gt;Poter trascinare le entity dalla finestra della soluzione all'interno del designer.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Grazie a questi 2 semplici espedienti potrei, per esempio, prendere le mie classi esistenti e trascinarle nel modello, importare il database nell'EDM senza che questo abbia impatto sul modello ed infine fare il mapping. Una volta fatto questo per generare il codice uso o il template POCO (facendo generare solo il codice per il context) o uso un mio template per generare il codice per la Code-First experience. Questo però è indifferente al designer che comunque rimane aperto ad ogni tipo di possibilità offerta da Entity Framework.&lt;/p&gt;&lt;p&gt;Un'altra cosa che potrei fare è trascinare le classi nel designer e farmi generare lo script per il database al volo (ammesso che ci diano finalmente la possibilità di scegliere quale strategia di persistenza utilizzare per l'ereditarietà in ogni singolo caso).&amp;#xa0;&lt;/p&gt;&lt;p&gt;Insomma, con questi 2 trucchi sarei libero di prendere ogni strada. Per questo motivo, anche se da un lato la direzione presa per il designer mi sembra buona, ci sono altre cose che si possono migliorare. Vediamo se magari renderanno il designer ancora più estendibile così che possa farmi da solo queste cose :).&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Stay tuned...&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/Entity_Framework/" rel="tag"&gt;Entity Framework&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/ORM/" rel="tag"&gt;ORM&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/sm15455/post2663/Penso-Prossime-Novita-Designer-Entity-Framework.aspx"&gt;&lt;em&gt;Cosa penso delle prossime novit&amp;#224; del designer Entity Framework&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2013 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>Entity Framework In Action, Entity Framework, ORM</category><guid isPermaLink="true">http://blogs.aspitalia.com/sm15455/post2663/Penso-Prossime-Novita-Designer-Entity-Framework.aspx</guid><slash:comments>2</slash:comments><wfw:comment>http://blogs.aspitalia.com/sm15455/post2663/Penso-Prossime-Novita-Designer-Entity-Framework.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/SM15455/CommentRSS2663.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2663</trackback:ping></item><item><title>Entity Framework e l&amp;#39;estendibilit&amp;#224; del designer</title><link>http://blogs.aspitalia.com/sm15455/post2585/Entity-Framework-Estendibilita-Designer.aspx</link><pubDate>Wed, 03 Feb 2010 07:37:37 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2585" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;E' un pò che manco dal blog, ma spero che d'ora in poi riuscirò a fare post con più continuità visto l'avvicnarsi della RTM di Visual Studio che per me in particolar modo significa la RTM di Entity Framework 4.0.&lt;/p&gt; &lt;p&gt;Durante la stesura del capitolo 11 del libro ho parlato di come customizzare Entity Framework per generare codice diverso da quello di default tramite i template T4, di come customizzare la generazione del database attraverso Workflow e di nuovo i template ed infine come customizzare il designer.&lt;/p&gt; &lt;p&gt;Quest'ultima parte è di particolare interesse. Io faccio un uso molto estensivo delle structured annotations nell'edm. Modificare l'edmx a mano non è certo un problema, ma se posso farlo da designer perchè no? Ecco,&amp;#160; il team di Entity Framework ha sfruttato MEF per permettere l'estensione del designer proprio per venire incontro ad esigenze di questo tipo.&lt;/p&gt; &lt;p&gt;Faccio un esempio. Quando devo persistere una entity che ha come proprietà chiave un Int32, se il valore è zero la marco come nuova tramite AddObject, altrimenti come aggiornata tramite Attach + ChangeObjectState. (NHibernate ha una feature del genere già integrata). Posso fare una cosa del genere scriveno una if secca nel codice ma diciamoci la verità. It Sucks. In alternativa, posso estendere l'EDM aggiungendo alla proprietà chiave il valore da utilizzare come discriminatore per decidere il tipo di operazione (0 per la add, il resto per la attach). Poi posso costruire un Extension Method che prende l'entità da persistere, tramite i metadati verifica la proprietà chiave e verifica quale valore usare per la insert. In questo modo nel codice noi invochiamo l'extension method e poi se la vede lui per tutto il resto.&lt;/p&gt; &lt;p&gt;Tutto bello , ma modificare l'EDM non è semplice a primo acchitto soprattutto per uno sviluppatore alle prime armi. E allora, perchè non fare in modo che quando si seleziona nel designer la proprietà chiave di una entità non si aggiunga una proprietà nella Properties Window che prenda il valore in base al quale fare la AddObject e che poi lo persista automaticamente nell'EDM?&lt;/p&gt; &lt;p&gt;Grazie all'estendibilità del designer possiamo raggiungere il nostro scopo con una classe con circa 20 righe di codice. Basta una classe che implementi un'interfaccia che ha un solo metodo (che potrebbe essere di una riga) il quale ritorna un'istanza di un'altra classe che contiene la proprietà da aggiungere al designer. Il getter ed il setter di questa proprietà lavorano con l'EDM per recuperarne e modificarne i dati direttamente in XML quindi con LINQ to XML il tutto è estremamente banale. &lt;/p&gt; &lt;p&gt;Alla fine della giostra grazie alla customizzazione del designer abbiamo un notevole incremento della produttività mentre disegnamo il nostro modello, ed una semplificazione del codice per via dell'Extension Method che decide da solo come persistere una entità. Quest'argomento è trattato nel mio &lt;a href="http://www.manning.com/mostarda" target="_blank"&gt;libro&lt;/a&gt; su Entity Framework quindi direi che è un buon motivo per non lasciarselo sfuggire :).&lt;/p&gt; &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;p&gt;Stay Tuned...&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/.NET_Framework/" rel="tag"&gt;.NET Framework&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/.NET_Framework_4.0/" rel="tag"&gt;.NET Framework 4.0&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Entity_Framework/" rel="tag"&gt;Entity Framework&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/ORM/" rel="tag"&gt;ORM&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/sm15455/post2585/Entity-Framework-Estendibilita-Designer.aspx"&gt;&lt;em&gt;Entity Framework e l&amp;#39;estendibilit&amp;amp;agrave; del designer&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2013 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>Entity Framework In Action, .NET Framework, .NET Framework 4.0, Entity Framework, ORM</category><guid isPermaLink="true">http://blogs.aspitalia.com/sm15455/post2585/Entity-Framework-Estendibilita-Designer.aspx</guid><slash:comments>0</slash:comments><wfw:comment>http://blogs.aspitalia.com/sm15455/post2585/Entity-Framework-Estendibilita-Designer.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/SM15455/CommentRSS2585.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2585</trackback:ping></item><item><title>Entity Framework 4.0 finalmente ha un buon designer</title><link>http://blogs.aspitalia.com/sm15455/post2559/Entity-Framework-4.0-Finalmente-Buon-Designer.aspx</link><pubDate>Fri, 30 Oct 2009 18:57:31 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2559" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;Il designer di Entity Framework 4.0 è "abbastanza" maturo. Tra le cose che non mi piacciono ci sono:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Impossibilità di ereditare da una classe che non sia sul designer(molto comodo quando si ha un proprio assembly con una classe da cui vogliamo far ereditare tutte quelle del modello)&lt;/li&gt; &lt;li&gt;Impossibilità di avere una classe base che sia mappata su 2 tabelle diverse (tabelle clienti e fornitori) (classe base Azienda e classi specializzate fornitori e clienti)&lt;/li&gt; &lt;li&gt;Impossibilità ditrascinare una classe esistente e vederla disegnata (utile quando già abbiamo un modello perchè generato con un tool o perchè stiamo migrando un'applicazione esistente)&lt;/li&gt; &lt;li&gt;impossibilità di modificare visualmente il SSDL.&lt;/li&gt; &lt;li&gt;Impossibilità di vedere i Complex Type al pari delle entity e di vedere le complex properties espanse.&lt;/li&gt; &lt;li&gt;Impossibilità di importare il database senza toccare il modello.&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;Queste cose sono molto fastidiose. Io odio particolarmente i punti dal 3 al 6. &lt;/p&gt; &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;p&gt;Tuttavia, l'insieme delle migliorie introdotte dalla versione 1.0 sono stratosferiche. Quella che era una blackbox è ora un'autentica perla di estensibilità. Certo, non che estendere il designer sia semplice, ma non è nemmeno così complesso. Cominciamo dalla generazione del codice. Ora tutto avviene tramite un file di templating così possiamo personalizzare loutput come meglio vogliamo. La generazione del database può essere customizzata con un workflow per quanto riguarda il modo di generare le tabelle, mentre per il codice vero e proprio del database basta usare un altro file di templating. Mettendo i file di templating nel posto giusto (in alcune directory di visual studio per la precisione) possiamo decidere tutto direttamente dalle proprietà del designer. Questa è una cosa che adoro.&lt;/p&gt; &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;p&gt;Entity Framework non è ancora un al livello di NHibernate, ma parliamoci chiaro, la rincorsa ed un eventuale sorpasso passano anche per un designer ben fatto e qui direi che siamo decisamente sulla buona strada.&lt;/p&gt; &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;p&gt;Stay Tuned...&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/Entity_Framework/" rel="tag"&gt;Entity Framework&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/ORM/" rel="tag"&gt;ORM&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/sm15455/post2559/Entity-Framework-4.0-Finalmente-Buon-Designer.aspx"&gt;&lt;em&gt;Entity Framework 4.0 finalmente ha un buon designer&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2013 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>Entity Framework In Action, Entity Framework, ORM</category><guid isPermaLink="true">http://blogs.aspitalia.com/sm15455/post2559/Entity-Framework-4.0-Finalmente-Buon-Designer.aspx</guid><slash:comments>0</slash:comments><wfw:comment>http://blogs.aspitalia.com/sm15455/post2559/Entity-Framework-4.0-Finalmente-Buon-Designer.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/SM15455/CommentRSS2559.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2559</trackback:ping></item><item><title>.NET Framework 4.0 Beta 2: Entity framework 4.0</title><link>http://blogs.aspitalia.com/sm15455/post2552/.NET-Framework-4.0-Beta-2-Entity-Framework-4.0.aspx</link><pubDate>Tue, 20 Oct 2009 09:18:39 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2552" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;Ormai anche i sassi sanno che oggi è uscita la Beta 2 di Visual Studio 2010 e del .NET Framework 4.0. Visto che i compari hanno già fatto dei post sulle varie novità introdotte con questa beta mi do da fare e vi parlo delle novità di Entity Framework 4.0.&lt;/p&gt; &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;p&gt;La novità sicuramente più attesa sono le foreign key. Adesso nelle relazioni master detail, la entity di detail avrà non solo una proprietà del tipo master, ma anche la foreign key verso quella entità. Per esempio, un dettaglio, avrà una proprietà ordine ed una ordineid. Dal punto di vista del design, questa è una bruttura clamorosa, ma risolve moltissimi problemi che le associazioni fatte senza foreign key avevano. Comunque, rendendo le foreign key protected, possiamo evitare di esporle all'esterno e ottenerne comunque i benefici.&lt;/p&gt; &lt;p&gt;Un'altra novità importante è nel designer. Finalmente quando importiamo una SP dal database il designer ne legge il risultato e genera automaticamente un complex type o ci permette di utilizzzarne uno esistente. hip hip hurrà :)&lt;/p&gt; &lt;p&gt;Finalmente il designer non obbliga a mantenere le navigation properties quando c'è un'associazione. Questo vuol dire che in un'associazione cliente-ordini, possiamo avere la navigation property Cliente nell'ordine e non mettere la proprietà Ordini nel cliente. Sicuramente la comprensibilità di un modello ne guadagna.&lt;/p&gt; &lt;p&gt;Una cosa che non mi piace è invece il lazy loading by default. Nel codice che viene generato, il costruttore abilita il lazy loading. Personalmente ritengo il lazy loading una delle cose più inutili della storia a parte in rarissimi casi che fino ad ora conto sulle dita di una mano.&lt;/p&gt; &lt;p&gt;Il designer è stato innoltre esteso per supportre meglio altri tipi di database e per permettere di pluggare la propria logica di generazione del database in scenari di database-first.&lt;/p&gt; &lt;p&gt;Infine ci sono molte altre migliorie come l'enditydatasource control per asp.net che ora supporta POCO ed i query extenders, un miglior support per l'n-tier e una riorganizzazione delle classi SqlFunction e EntityFunction utilizzate da LINQ to Entities.&lt;/p&gt; &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;p&gt;Insomma le novità ci sono e sono succulente. Io, &lt;a href="http://blogs.aspitalia.com/cradle"&gt;Marco&lt;/a&gt; e &lt;a href="http://blogs.aspitalia.com/daniele"&gt;Daniele&lt;/a&gt; abbiamo quasi finito di aggiornare il &lt;a href="http://www.manning.com/mostarda" target="_blank"&gt;libro&lt;/a&gt; alla Beta 2 e il tutto sta per andare in MEAP quindi direi che è una buona lettura per tutti ;).&lt;/p&gt; &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;p&gt;Stay Tuned...&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/.NET_Framework_4.0/" rel="tag"&gt;.NET Framework 4.0&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Entity_Framework/" rel="tag"&gt;Entity Framework&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/ORM/" rel="tag"&gt;ORM&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/.NET_Framework/" rel="tag"&gt;.NET Framework&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/sm15455/post2552/.NET-Framework-4.0-Beta-2-Entity-Framework-4.0.aspx"&gt;&lt;em&gt;.NET Framework 4.0 Beta 2: Entity framework 4.0&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2013 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>Entity Framework In Action, .NET Framework 4.0, Entity Framework, ORM, .NET Framework</category><guid isPermaLink="true">http://blogs.aspitalia.com/sm15455/post2552/.NET-Framework-4.0-Beta-2-Entity-Framework-4.0.aspx</guid><slash:comments>6</slash:comments><wfw:comment>http://blogs.aspitalia.com/sm15455/post2552/.NET-Framework-4.0-Beta-2-Entity-Framework-4.0.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/SM15455/CommentRSS2552.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2552</trackback:ping></item><item><title>Entity Framework 4.0 e le applicazioni preesistenti</title><link>http://blogs.aspitalia.com/sm15455/post2548/Entity-Framework-4.0-Applicazioni-Preesistenti.aspx</link><pubDate>Wed, 07 Oct 2009 22:24:09 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2548" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;Non c'è alcun dubbio che Entity Framework 1.0 abbia l'immenso limite di essere inusabile in applicazioni con database preesistenti che magari fanno uso stored procedure che tornano dati differenti dalle entity che l'applicazione tratta. &lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.aspitalia.com/daniele"&gt;Daniele&lt;/a&gt; ne sa qualcosa e mi insulta ogni giorno per questo motivo. Io non c'entro niente, ma è un pattern molto diffuso dare sempre la colpa a me :D.&lt;/p&gt; &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;p&gt;Comunque in Entity Framework 4.0 la cosa diventerà meno complicata. L'introduzione di POCO permetterà di mantenere il vecchio object/domain model cambiando poco codice. La possibilità di mappare i risultati di una entity verso un complex type permette di non impazzire nel generare viste inutili sul database o nel SSDL. Insomma piccole cose che rendono l'integrazione di Entity Framework 4.0 in applicazioni preesistenti meno complicata di quanto non lo fosse con la versione precedente.&lt;/p&gt; &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;p&gt;Lo so, NHibernate è ancora un bel pò avanti... ma date tempo al tempo&lt;/p&gt; &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;p&gt;Stay tuned... &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/Entity_Framework/" rel="tag"&gt;Entity Framework&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/ORM/" rel="tag"&gt;ORM&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Database/" rel="tag"&gt;Database&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/sm15455/post2548/Entity-Framework-4.0-Applicazioni-Preesistenti.aspx"&gt;&lt;em&gt;Entity Framework 4.0 e le applicazioni preesistenti&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2013 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>Entity Framework In Action, Entity Framework, ORM, Database</category><guid isPermaLink="true">http://blogs.aspitalia.com/sm15455/post2548/Entity-Framework-4.0-Applicazioni-Preesistenti.aspx</guid><slash:comments>0</slash:comments><wfw:comment>http://blogs.aspitalia.com/sm15455/post2548/Entity-Framework-4.0-Applicazioni-Preesistenti.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/SM15455/CommentRSS2548.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2548</trackback:ping></item><item><title>Entity Framework 4.0 e la customizzazione del codice</title><link>http://blogs.aspitalia.com/sm15455/post2527/Entity-Framework-4.0-Customizzazione-Codice.aspx</link><pubDate>Sat, 25 Jul 2009 14:07:50 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2527" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;Non è una novità che Entity Framework 4.0 permetta di generare codice tramite il motore di template T4. Quello che forse è meno noto è che si può customizzare anche il modo in cui il designer genera il codice per creare il database quando si usa l'approccio Model First. &lt;/p&gt; &lt;p&gt;Questo processo avviene tramite un worflow che analizza le classi disegnate e dapprima genera le sezioni MSL e SSDL dell'EDM e poi da quest'ultimo fa partire un la generazione dello script tramite T4. Lo script per il workflow si trova nelle cartelle di Visual Studio ed è facilmente individuabile perchè quando si apre il designer, nella finestra delle proprietà c'è il path dello xaml che lancia le activities.&lt;/p&gt; &lt;p&gt;Insomma semplicemente cambiando il file XAML e scrivendoci una nostra attività, possiamo trovare un nostro modo alternativo per creare il database. La prima cosa che mi viene in mente, è che possiamo persistere le classi che sfruttano l'ereditarietà con il modello TPH invece che TPT come avviene adesso. Magari sfruttando le annotation possiamo anche decidere di persistere in uno o nell'altro modo l'ereditarietà. inoltre, customizzando il template che genera il database dal file SSDL, invece che droppare e ricreare ogni volta le tabelle (un autentica mannaia perchè se abbiamo fatto delle ottimizzazioni come indici o altro perdiamo tutto) possiamo fare un compare con la struttura esistente nel db e aggiornare solo le discrepanze. Non dico assolutamente che sia facile, anzi. Quest'ultima cosa richiede parecchio lavoro e se Microsoft stessa ammette che non è una cosa che ha intenzione di fare un motivo ci sarà. Tuttavia se uno ha necessità o tempo da perdere può costruirsi un generatore di codice veramente potente tale da rendere l'utilizzo del designer un vero e proprio gioiello.&lt;/p&gt; &lt;p&gt;Insomma, EF non è ancora perfetto, ma la struttura che c'è sotto è decisamente potente&lt;/p&gt; &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;p&gt;Stay Tuned...&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/.NET_Framework/" rel="tag"&gt;.NET Framework&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/.NET_Framework_4.0/" rel="tag"&gt;.NET Framework 4.0&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/ORM/" rel="tag"&gt;ORM&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Database/" rel="tag"&gt;Database&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/sm15455/post2527/Entity-Framework-4.0-Customizzazione-Codice.aspx"&gt;&lt;em&gt;Entity Framework 4.0 e la customizzazione del codice&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2013 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>Entity Framework In Action, .NET Framework, .NET Framework 4.0, ORM, Database</category><guid isPermaLink="true">http://blogs.aspitalia.com/sm15455/post2527/Entity-Framework-4.0-Customizzazione-Codice.aspx</guid><slash:comments>0</slash:comments><wfw:comment>http://blogs.aspitalia.com/sm15455/post2527/Entity-Framework-4.0-Customizzazione-Codice.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/SM15455/CommentRSS2527.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2527</trackback:ping></item><item><title>Entity Framework e le performance con la Like</title><link>http://blogs.aspitalia.com/sm15455/post2514/Entity-Framework-Performance-Like.aspx</link><pubDate>Tue, 09 Jun 2009 05:00:00 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2514" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;Nel bel mezzo della notte insonne ho deciso di fare qualche test per verificare quanto il problema mostrato in questo &lt;a href="http://www.linqitalia.com/script/124/ottimizzare-where-operatore-like-entity-framework.aspx"&gt;script&lt;/a&gt; fosse rilevante. &lt;/p&gt; &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;p&gt;Ho creato una tabella con un solo campo di tipo varchar(50) e l'ho popolata con 500.000 righe. poi ho creato una console application ed ho eseguito la stessa query per 100 volte utizzando prima la sintassi LINQ To Entities e poi quella Entity SQL. &lt;/p&gt; &lt;p&gt;Il risultato è abbastanza impietoso perchè la sintassi LINQ To Entities impiega 1'02''815 mentre quella Entity SQL impiega 1''221. La differenza di 1 minuto su 100 query è enorme. questo fatto è da considerare quando si vogliono fare applicazioni scalabili con Entity Framework.. tenetelo a mente&lt;/p&gt; &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;p&gt;Stay Tuned...&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/Entity_Framework/" rel="tag"&gt;Entity Framework&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/LINQ/" rel="tag"&gt;LINQ&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/sm15455/post2514/Entity-Framework-Performance-Like.aspx"&gt;&lt;em&gt;Entity Framework e le performance con la Like&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2013 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>Entity Framework In Action, Entity Framework, LINQ</category><guid isPermaLink="true">http://blogs.aspitalia.com/sm15455/post2514/Entity-Framework-Performance-Like.aspx</guid><slash:comments>0</slash:comments><wfw:comment>http://blogs.aspitalia.com/sm15455/post2514/Entity-Framework-Performance-Like.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/SM15455/CommentRSS2514.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2514</trackback:ping></item><item><title>Entity Framework e la generazione di codice POCO</title><link>http://blogs.aspitalia.com/sm15455/post2512/Entity-Framework-Generazione-Codice.aspx</link><pubDate>Tue, 02 Jun 2009 18:22:55 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2512" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;Una delle cose più &lt;strong&gt;S&lt;/strong&gt;gradite di Entity Framework 4.0 è il fatto che il designer non genera classi POCO. Questa scelta è ovvia e rimarrà quella di default anche in RTM per mantenere la compatibilità col passato. La buona notizia è che per la RTM il team dovrebbe anche includere un template T4 per la generazione di classi POCO.&lt;/p&gt; &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;p&gt;La certezza assoluta è che questo template genererà le classi aggiungendole allo stesso assembly in cui si trova l'EDMX. Ora che finalmente abbiamo un sistema &lt;strong&gt;OTTIMO-FANTASTICO-ECCEZIONALE-MERAVIGLIOSO-PERFETTO&lt;/strong&gt; di generazione del codice, questa limitazione si può superare. Cercando un pò in rete e partendo dalla base del template esistente, sono arrivato a creare un template che permette di:&lt;/p&gt; &lt;p&gt;Generare le classi e l'objectcontext in classi separate.&lt;/p&gt; &lt;p&gt;Aggiungere le classi ad un assembly diverso da quello in cui si trova l'edmx. Nell'assembly dell'ObjectModel o del DomainModel ad esempio. (Facoltativo).&lt;/p&gt; &lt;p&gt;Aggiungere l'objectcontext ad un assembly diverso da quello in cui si trova l'edmx. Nell'assembly del DAL ad esempio. (Facoltativo).&lt;/p&gt; &lt;p&gt;Mantenete il proprio codice aggiunto alle entities anche quando l'entità viene rigenerata.&lt;/p&gt; &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;p&gt;Ovviamente il tutto è molto Beta 1 ma credo sia un ottimo punto di partenza per capire come funziona il T4 e per avere classi POCO da subito. In altri post vedremo come ho risolto alcuni problemi. nel frattempo potete scaricare il template a questo &lt;a href="http://lab.aspitalia.com/60/template-generare-classi-entity-framework-4.0.aspx" target="_blank"&gt;indirizzo&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/.NET_Framework/" rel="tag"&gt;.NET Framework&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/.NET_Framework_4.0/" rel="tag"&gt;.NET Framework 4.0&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Entity_Framework/" rel="tag"&gt;Entity Framework&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/ORM/" rel="tag"&gt;ORM&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/sm15455/post2512/Entity-Framework-Generazione-Codice.aspx"&gt;&lt;em&gt;Entity Framework e la generazione di codice POCO&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2013 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>Entity Framework In Action, .NET Framework, .NET Framework 4.0, Entity Framework, ORM</category><guid isPermaLink="true">http://blogs.aspitalia.com/sm15455/post2512/Entity-Framework-Generazione-Codice.aspx</guid><slash:comments>0</slash:comments><wfw:comment>http://blogs.aspitalia.com/sm15455/post2512/Entity-Framework-Generazione-Codice.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/SM15455/CommentRSS2512.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2512</trackback:ping></item><item><title>.NET Framework 4.0 Beta 1: Entity Framework</title><link>http://blogs.aspitalia.com/sm15455/post2499/.NET-Framework-4.0-Beta-1-Entity-Framework.aspx</link><pubDate>Mon, 18 May 2009 14:14:28 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2499" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;In questi minuti è uscita la beta 1 del .NET Framework 4.0. Ovviamente, per quanto mi riguarda, la cosa più interessante è Entity Framework 4.0. Le novità della nuova versione sono state annunciate già da tempo nel blog dedicato e quindi non ci sono cose nuove da scoprire.&lt;/p&gt;  &lt;p&gt;Nonostante questo, credo che sia il caso di fare una carrellata in rigoroso ordine di preferenza personale :)&lt;/p&gt;  &lt;ul&gt; &lt;li&gt;Supporto per mappare le stored procedure su tipi custom: fino ad ora le stored procedure potevano essere mappate solo verso entità o su tipi custom che però avessereo un mapping verso una tabella o view nel database. adesso finalente questo on sarà necessario. Basterà creare un ComplexType e mapparci la SP.&lt;/li&gt; &lt;li&gt;Designer decente. Finalmente il designer può defnirsi decente. innanzitutto c'è il supporto per i complex types ma soprattutto non ci sono crash ogni volta che si fa qualcosa di un pelino più complesso.&lt;/li&gt; &lt;li&gt;Customizzazione del codice generato tramite T4. Finalmente possiamo customizzarce il codice che genera il designer tramite un template. ovviamente possiamo anche suddividere le clasi su più file e molto altro ancora.&lt;/li&gt; &lt;li&gt;Persistence Ignorance. Gran bella novità per carità.... Ma non sempre mi è servità come le altre precedenti&lt;/li&gt; &lt;li&gt;Miglior supporto per lo sviluppo n-tier con API che semplificano la vita.&lt;/li&gt; &lt;li&gt;Foreign-key per semplificare la vita quando si inseriscono sul db entità in relazione tra loro (solo dopo la beta 1)&lt;/li&gt; &lt;li&gt;Possibilità di generare il database partendo dalle classi (Model first).&lt;/li&gt; &lt;li&gt;Lazy loading&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Ci sono altre piccole feature che scopriremo col tempo, ma direi che ormai è il momento di provarle sul campo :D.&lt;/p&gt; &lt;p&gt;Maggiori informazioni e le informazioni per il download sono disponibili nel nostro mini-sito dedicato al &lt;a href="http://netfx4.winfxitalia.com/"&gt;.NET Framework 4.0&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Stay Tuned...&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/.NET_Framework_3.5/" rel="tag"&gt;.NET Framework 3.5&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/.NET_Framework_4.0/" rel="tag"&gt;.NET Framework 4.0&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Entity_Framework/" rel="tag"&gt;Entity Framework&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/LINQ/" rel="tag"&gt;LINQ&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/ORM/" rel="tag"&gt;ORM&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/.NET_Framework/" rel="tag"&gt;.NET Framework&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/sm15455/post2499/.NET-Framework-4.0-Beta-1-Entity-Framework.aspx"&gt;&lt;em&gt;.NET Framework 4.0 Beta 1: Entity Framework&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2013 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>Entity Framework In Action, .NET Framework 3.5, .NET Framework 4.0, Entity Framework, LINQ, ORM, .NET Framework</category><guid isPermaLink="true">http://blogs.aspitalia.com/sm15455/post2499/.NET-Framework-4.0-Beta-1-Entity-Framework.aspx</guid><slash:comments>0</slash:comments><wfw:comment>http://blogs.aspitalia.com/sm15455/post2499/.NET-Framework-4.0-Beta-1-Entity-Framework.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/SM15455/CommentRSS2499.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2499</trackback:ping></item><item><title>Entity Framework in action &amp;#232; in disponibile in MEAP</title><link>http://blogs.aspitalia.com/sm15455/post2460/Entity-Framework-Action-Disponibile-MEAP.aspx</link><pubDate>Mon, 16 Feb 2009 00:19:02 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2460" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;Da giovedì scorso il mio libro Entity Framework in action è ufficialmente disponibile in &lt;a href="http://www.manning.com/mostarda/" target="_blank"&gt;MEAP&lt;/a&gt; dal sito Manning.&lt;/p&gt; &lt;p&gt;Per ora sono disponibili i capitoli di introduzione, quello sul querying e quello sul mapping più una appendice dedicata a LINQ in generale ma molto presto ne vedrete anche altri.&lt;/p&gt; &lt;p&gt;E' inutile dire che la mia soddisfazione è immensa. Il libro è ancora ben lontano dall'essere perfetto ma mi piace come sta venendo su . speriamo piaccia anche a voi :D.&lt;/p&gt; &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;p&gt;Stay tuned.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/.NET_Framework_3.5/" rel="tag"&gt;.NET Framework 3.5&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Entity_Framework/" rel="tag"&gt;Entity Framework&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/LINQ/" rel="tag"&gt;LINQ&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/ORM/" rel="tag"&gt;ORM&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/sm15455/post2460/Entity-Framework-Action-Disponibile-MEAP.aspx"&gt;&lt;em&gt;Entity Framework in action &amp;amp;egrave; in disponibile in MEAP&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2013 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>Entity Framework In Action, .NET Framework 3.5, Entity Framework, LINQ, ORM</category><guid isPermaLink="true">http://blogs.aspitalia.com/sm15455/post2460/Entity-Framework-Action-Disponibile-MEAP.aspx</guid><slash:comments>2</slash:comments><wfw:comment>http://blogs.aspitalia.com/sm15455/post2460/Entity-Framework-Action-Disponibile-MEAP.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/SM15455/CommentRSS2460.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2460</trackback:ping></item><item><title>Entity Framework e l&amp;#39;EDM</title><link>http://blogs.aspitalia.com/sm15455/post2457/Entity-Framework-EDM.aspx</link><pubDate>Sat, 31 Jan 2009 23:44:49 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2457" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;Penso che nessuno possa mettere in dubbio che il file di mapping sia una delle cose più complesse di Entity Framework. Microsoft ha prodotto un editor per semplificarne l'uso proprio perchè spesso, la differenze tra uno e l'altro ORM non è la potenza, ma la velocità di startup. In questo Entity Framework non ha quasi rivali, pochi click ed il dominio è generato con tanto di mapping verso il database.&lt;/p&gt; &lt;p&gt;Tuttavia, l'editor nella versione attuale è monco. Non supporta Complex Types (ok non moriremo per questo, però...), non supporta le DefiningQuery, sovrascrive ogni modifica fatta a mano nello storage layer (ogni tanto mi capita di metterci della roba che mi serve e doverla rimettere ad ogni aggiornamento mi rode), Non supporta il mapping di stored procedure polimorfiche, non supporta le QueryView. Insomma, ci sono diverse cose che qualunque progetto un tantinello più avanzato richiede e che il designer non supporta. Attenzione però, per quanto riguarda i complex types, se li si introduce a mano il designer smette di funzionare, mentre negli altri casi continua a funzionare tranquillamente.&lt;/p&gt; &lt;p&gt;Queste lacune mi hanno fatto pensare ancora una volta di più che conoscere il mapping è fondamentale. Personalmente ritengo le DefiningQuery una delle feature più interessanti perchè permettono di creare delle view direttamente nel modello. Queste view sono interrogabili filtrabili etc etc e spesso risolvono tutti quei problemi di mapping che non sono gestibili in maniera nativa. Non emergendo nel designer, quanti le conoscono? Quanti le hanno mai usate? Nella mia esperienza in alcune aziende la risposta è: zero. &lt;/p&gt; &lt;p&gt;Mi riprometto di parlare di più di questa interessante feature di EF. Nel frattemo ribadisco quello che ho detto ad una persona tempo fa: non dire che una cosa non la puoi mappare se prima non sei passato per le DefiningQuery.&lt;/p&gt; &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;p&gt;Stay Tuned...&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/.NET_Framework_3.5/" rel="tag"&gt;.NET Framework 3.5&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Entity_Framework/" rel="tag"&gt;Entity Framework&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/LINQ/" rel="tag"&gt;LINQ&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/ORM/" rel="tag"&gt;ORM&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/sm15455/post2457/Entity-Framework-EDM.aspx"&gt;&lt;em&gt;Entity Framework e l&amp;#39;EDM&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2013 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>Entity Framework In Action, .NET Framework 3.5, Entity Framework, LINQ, ORM</category><guid isPermaLink="true">http://blogs.aspitalia.com/sm15455/post2457/Entity-Framework-EDM.aspx</guid><slash:comments>2</slash:comments><wfw:comment>http://blogs.aspitalia.com/sm15455/post2457/Entity-Framework-EDM.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/SM15455/CommentRSS2457.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2457</trackback:ping></item><item><title>Entity Framework e le Navigation Properties</title><link>http://blogs.aspitalia.com/sm15455/post2446/Entity-Framework-Navigation-Properties.aspx</link><pubDate>Sat, 27 Dec 2008 23:12:26 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2446" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;Una relazione è per sua natura bidirezionale. Quello che non è sempre bidirezionale è la sua rappresentazione nel domain model. Prendiamo ad esempio la relazione tra clienti e ordini. Avere a disposizione il cliente di un ordine ha senso, ma ha senso avere a disposizione la lista degli ordini di un cliente? la risposta esatta come sempre è.... dipende. Ora non voglio disquisire sulla validità o meno della relazione ma su come Entity Framework affronta il problema.&lt;/p&gt; &lt;p&gt;Per default, il wizard si accorge della relazione tra le tabelle e genera un domain model dove le relazioni tra le classi sono bidirezionali, quindi un ordine ha la relazione verso il cliente e il cliente ha una relazione verso gli ordini. Supponiamo che non ci sia utile in alcun modo la relazione tra cliente e ordine. La logica vuole che questa sia eliminata. Il primo problema è che il designer non lo permette; bisogna andare a mano nel codice ed eliminare la proprietà Ordini dalla classe Cliente e nel conceptual model del file di mapping eliminare il riferimento alla proprietà cancellata ed il gioco è fatto. Il secondo problema risale a LINQ to Entities. Abbiamo bisogno della proprietà Ordini per fare le nostre query? In tutti i progetti che ho seguito la risposta è stata no. Grazie al fatto che comunque l'ordine mantiene la proprietà Cliente si riesce a risalire a qualunque dato di cui si ha bisogno. L'unico vero problema sono le query generate a run-time. La regola numero uno è che bisogna sempre vedere le query generate per evitare problemi.&lt;/p&gt; &lt;p&gt;Comunque per ora la mia linea guida è quella di non creare proprietà inutili che complicano solo la vita.&lt;/p&gt; &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;p&gt;Stay tuned...&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/.NET_Framework/" rel="tag"&gt;.NET Framework&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/.NET_Framework_3.5/" rel="tag"&gt;.NET Framework 3.5&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Entity_Framework/" rel="tag"&gt;Entity Framework&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/LINQ/" rel="tag"&gt;LINQ&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/ORM/" rel="tag"&gt;ORM&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/sm15455/post2446/Entity-Framework-Navigation-Properties.aspx"&gt;&lt;em&gt;Entity Framework e le Navigation Properties&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2013 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>Entity Framework In Action, .NET Framework, .NET Framework 3.5, Entity Framework, LINQ, ORM</category><guid isPermaLink="true">http://blogs.aspitalia.com/sm15455/post2446/Entity-Framework-Navigation-Properties.aspx</guid><slash:comments>0</slash:comments><wfw:comment>http://blogs.aspitalia.com/sm15455/post2446/Entity-Framework-Navigation-Properties.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/SM15455/CommentRSS2446.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2446</trackback:ping></item><item><title>Dubbio amletico sul codice SQL di Entity Framework con il Table per Hierarchy</title><link>http://blogs.aspitalia.com/sm15455/post2441/Dubbio-Amletico-Codice-SQL-Entity-Framework-Table-Hierarchy.aspx</link><pubDate>Tue, 09 Dec 2008 00:14:02 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2441" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;Stavo facendo un pò di prove per smanettare con la gestione del Table per Hierarchy in Entity Framework. Innanzitutto dopo un impatto iniziale alquanto dramamtico, devo dire che il designer visuale mi ha aiutato non poco a disegnare la struttura partendo dalla classe autogenerata dal database. Visto che il designer è forse la cosa uscita peggio da Entity Framework, tutto sommato direi che questa è una buona cosa.&lt;/p&gt; &lt;p&gt;Dopo aver mappato tutto come si deve, ho eseguito una semplice query per trovare tutti gli oggetti: ctx.Company().ToList();&lt;/p&gt; &lt;p&gt;Quello che mi ha sorpreso è vedere che il generatore di codice di Entity Framework ha generato questo SQL:&lt;/p&gt; &lt;p&gt;SELECT &lt;br /&gt;[Extent1].[Type] AS [Type], &lt;br /&gt;[Extent1].[CompanyId] AS [CompanyId], &lt;br /&gt;[Extent1].[Name] AS [Name], &lt;br /&gt;[Extent1].[BillingAddress] AS [BillingAddress], &lt;br /&gt;[Extent1].[BillingCity] AS [BillingCity], &lt;br /&gt;[Extent1].[BillingZipCode] AS [BillingZipCode], &lt;br /&gt;[Extent1].[BillingCountry] AS [BillingCountry], &lt;br /&gt;[Extent1].[ShippingAddress] AS [ShippingAddress], &lt;br /&gt;[Extent1].[ShippingCity] AS [ShippingCity], &lt;br /&gt;[Extent1].[ShippingZipCode] AS [ShippingZipCode], &lt;br /&gt;[Extent1].[ShippingCountry] AS [ShippingCountry], &lt;br /&gt;[Extent1].[WSUserName] AS [WSUserName], &lt;br /&gt;[Extent1].[WSPassword] AS [WSPassword], &lt;br /&gt;[Extent1].[WSEnabled] AS [WSEnabled] &lt;br /&gt;FROM [dbo].[Company] AS [Extent1] &lt;br /&gt;WHERE ([Extent1].[Type] = 'C') OR ([Extent1].[Type] = 'S')&lt;/p&gt; &lt;p&gt;Ora, type è la colonna che mi fa da discriminatore tra i vari tipi che la tabella contiene, ma visto che tanto sto chiedendo tutti i tipi, è necessaria quella OR? Non capisco se sta li per sicurezza così che se ci sono altri record con un type diverso questi vengono ignorati, oppure sta li per errore.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Stay tuned...&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/.NET_Framework_3.5/" rel="tag"&gt;.NET Framework 3.5&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Entity_Framework/" rel="tag"&gt;Entity Framework&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/LINQ/" rel="tag"&gt;LINQ&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/ORM/" rel="tag"&gt;ORM&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/sm15455/post2441/Dubbio-Amletico-Codice-SQL-Entity-Framework-Table-Hierarchy.aspx"&gt;&lt;em&gt;Dubbio amletico sul codice SQL di Entity Framework con il Table per Hierarchy&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2013 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>Entity Framework In Action, .NET Framework 3.5, Entity Framework, LINQ, ORM</category><guid isPermaLink="true">http://blogs.aspitalia.com/sm15455/post2441/Dubbio-Amletico-Codice-SQL-Entity-Framework-Table-Hierarchy.aspx</guid><slash:comments>3</slash:comments><wfw:comment>http://blogs.aspitalia.com/sm15455/post2441/Dubbio-Amletico-Codice-SQL-Entity-Framework-Table-Hierarchy.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/SM15455/CommentRSS2441.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2441</trackback:ping></item><item><title>Il mio primo libro in inglese: Entity Framework In Action</title><link>http://blogs.aspitalia.com/sm15455/post2375/Libro-Inglese-Entity-Framework-Action.aspx</link><pubDate>Thu, 28 Aug 2008 10:12:00 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2375" border="0" style="width:1px; height:1px;" /&gt;Sono mesi che ci sto lavorando e finalmente il risutato si vede. Ormai tutto è pronto quindi posso annunciare che dopo &lt;a href="http://books.aspitalia.com/ASP.NET-3.5/"&gt;ASP.NET 3.5 per tutti&lt;/a&gt;, partirò con la stesura del mio primo libro da &amp;quot;single&amp;quot; in inglese: Entity Framework In Action.&lt;br /&gt;&lt;br /&gt;Come si intuisce dal titolo, il libro è pubblicato dalla &lt;a target="_blank" href="http://www.manning.com"&gt;Manning&lt;/a&gt;. Molti mi hanno sconsigliato di scrivere un libro su questo argomento vista la grande impopolarità di Entity Framework. Io rimango della mia idea che seppur limitato da alcune scelte di design, che verranno in parte migliorate nella v2, questo framework ha un engine molto potente ed in futuro dirà la sua contro colossi come NHibernate (visto anche che è incluso nel framework). &lt;br /&gt;&lt;br /&gt;Confesso di essere un tantinello terrorizzato perchè scrivere un libro in inglese che verrà letto in tutto il mondo è una cosa non proprio semplice da affrontare, ma ormai come mi ha detto &lt;a href="http://blogs.aspitalia.com/daniele"&gt;Daniele&lt;/a&gt; &amp;quot;hai voluto la bicicletta ...&amp;quot; :).&lt;br /&gt;&lt;br /&gt;Chiudo con i ringraziamenti d'obbligo ad &lt;a target="_blank" href="http://aspadvice.com/blogs/garbin/"&gt;Alessandro&lt;/a&gt;, lui sa benissimo il perché.  Ora non mi rimane che buttarmi a capofitto nella stesura del libro, sperando di riuscire a convincere la gente che in realtà Entity Framework non è così malaccio come si dice :).&lt;br /&gt;&lt;br /&gt;Stay Tuned...&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/.NET_Framework/" rel="tag"&gt;.NET Framework&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/.NET_Framework_3.5/" rel="tag"&gt;.NET Framework 3.5&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Entity_Framework/" rel="tag"&gt;Entity Framework&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/LINQ/" rel="tag"&gt;LINQ&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/ORM/" rel="tag"&gt;ORM&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/sm15455/post2375/Libro-Inglese-Entity-Framework-Action.aspx"&gt;&lt;em&gt;Il mio primo libro in inglese: Entity Framework In Action&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2013 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>Entity Framework In Action, .NET Framework, .NET Framework 3.5, Entity Framework, LINQ, ORM</category><guid isPermaLink="true">http://blogs.aspitalia.com/sm15455/post2375/Libro-Inglese-Entity-Framework-Action.aspx</guid><slash:comments>12</slash:comments><wfw:comment>http://blogs.aspitalia.com/sm15455/post2375/Libro-Inglese-Entity-Framework-Action.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/SM15455/CommentRSS2375.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2375</trackback:ping></item></channel></rss>