<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>LINQ</title><link>http://community.visual-basic.it/alessandroenglish/category/550.aspx</link><description>LINQ</description><managingEditor>alessandro.delsole@nospamvisual-basic.it</managingEditor><dc:language>en-US</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>alessandro.delsole@nospamvisual-basic.it</dc:creator><title>My book "Visual Basic 2010 Unleashed" is available</title><link>http://community.visual-basic.it/alessandroenglish/archive/2010/05/12/29083.aspx</link><pubDate>Wed, 12 May 2010 09:49:00 GMT</pubDate><guid>http://community.visual-basic.it/alessandroenglish/archive/2010/05/12/29083.aspx</guid><wfw:comment>http://community.visual-basic.it/alessandroenglish/comments/29083.aspx</wfw:comment><comments>http://community.visual-basic.it/alessandroenglish/archive/2010/05/12/29083.aspx#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://community.visual-basic.it/alessandroenglish/comments/commentRss/29083.aspx</wfw:commentRss><trackback:ping>http://community.visual-basic.it/alessandroenglish/services/trackbacks/29083.aspx</trackback:ping><description>&lt;P align=justify&gt;&lt;FONT color=#0000ff size=2 face=Verdana&gt;I'm pleased to announce that my book "&lt;FONT color=#ff0000&gt;Visual Basic 2010 Unleashed&lt;/FONT&gt;" is finally live! It's my first English book and it offers more than 1200 pages where the syntax of &lt;FONT color=#000000&gt;Visual Basic 2010&lt;/FONT&gt; is analyzed in details but it is also a book that describes how Visual Basic today can be used against the most recent Microsoft technologies for both Windows and the Web.&lt;/FONT&gt;&lt;/P&gt;
&lt;P align=justify&gt;&lt;A href="http://community.visual-basic.it/images/community_visual-basic_it/alessandro/584/o_0672331004.jpg"&gt;&lt;IMG src="/images/community_visual-basic_it/alessandro/584/o_unleashedcoverblog.jpg"&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;FONT color=#0000ff face=Verdana&gt;(Click for larger image)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P align=justify&gt;&lt;FONT color=#0000ff size=2 face=Verdana&gt;It has been a really hard work but I feel proud of it :-)&amp;nbsp;With regard to contents, actually this book is not intended for absolute beginners; instead it is intended for an audience having some experience with the .NET technology and the Visual Basic language. It is composed of 59 chapters and the last 4 of them is available on the Web only (yes, I wrote too much :-)). The book starts with the Visual Basic language fundamentals and then goes through the Object Oriented Programming aspects, analyzing advanced features of the language and of the Common Language Runtime as well. Among the topics, I covered data access with LINQ, the new Parallel Programming libraries, code contracts, building WPF &amp;amp; Silverlight applications, Web applications also targeting Windows Azure. I discuss about Windows Communication Foundation and WCF Data Services, setup &amp;amp; deployment, Office deployment and Visual Studio 2010 extensibility. The last part of the book, which is Web only, is about the Team System instrumentation, therefore analysis tools, IntelliTrace, unit tests and so on. Except for the last part of the book, most of the contents can be also applied to &lt;FONT color=#000000&gt;Visual Basic 2010 Express Edition&lt;/FONT&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P align=justify&gt;&lt;FONT color=#0000ff size=2 face=Verdana&gt;The full list of the chapters and of the topics is available in this &lt;A href="http://www.informit.com/store/product.aspx?isbn=0672331004"&gt;&lt;FONT color=#ff0000&gt;page&lt;/FONT&gt;&lt;/A&gt; from the InformIT web site, in the &lt;FONT color=#000000&gt;Sample Contents&lt;/FONT&gt; tab. We'll soon have 2 free sample chapters (I'll give you the download link as soon as I get it). The companion source code is also available from the same &lt;A href="http://www.informit.com/store/product.aspx?isbn=0672331004"&gt;&lt;FONT color=#a52a2a&gt;page&lt;/FONT&gt;&lt;/A&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P align=justify&gt;&lt;FONT color=#0000ff size=2 face=Verdana&gt;I hope you will enjoy it!&lt;/FONT&gt;&lt;/P&gt;
&lt;P align=justify&gt;&lt;FONT color=#008000 size=2 face=Verdana&gt;&lt;STRONG&gt;&lt;EM&gt;Alessandro&lt;/EM&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src ="http://community.visual-basic.it/alessandroenglish/aggbug/29083.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>alessandro.delsole@nospamvisual-basic.it</dc:creator><title>Querying the Windows' events with LINQ and Visual Basic</title><link>http://community.visual-basic.it/alessandroenglish/archive/2010/03/07/27588.aspx</link><pubDate>Sun, 07 Mar 2010 23:05:00 GMT</pubDate><guid>http://community.visual-basic.it/alessandroenglish/archive/2010/03/07/27588.aspx</guid><wfw:comment>http://community.visual-basic.it/alessandroenglish/comments/27588.aspx</wfw:comment><comments>http://community.visual-basic.it/alessandroenglish/archive/2010/03/07/27588.aspx#Feedback</comments><slash:comments>59</slash:comments><wfw:commentRss>http://community.visual-basic.it/alessandroenglish/comments/commentRss/27588.aspx</wfw:commentRss><trackback:ping>http://community.visual-basic.it/alessandroenglish/services/trackbacks/27588.aspx</trackback:ping><description>&lt;P align=justify&gt;&lt;FONT color=#0000ff size=2 face=Verdana&gt;Some time ago, in the Italian MSDN&amp;nbsp;&lt;A href="http://social.microsoft.com/Forums/it-IT/visualbasicit/threads"&gt;&lt;FONT color=#a52a2a&gt;forum&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;about &lt;FONT color=#008000&gt;Visual Basic&lt;/FONT&gt;, a user asked how it is possible querying the Windows' log events registry based on the given ID. This is really easy with LINQ.&lt;/FONT&gt;&lt;/P&gt;
&lt;P align=justify&gt;&lt;FONT color=#0000ff size=2 face=Verdana&gt;First, you get a reference to the Windows' events registry via an instance of the &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face=Verdana&gt;&lt;FONT color=#000000 face="Courier New"&gt;System.Diagnostics.EventLog &lt;/FONT&gt;class. The constructor requires as an argument the log name you want to query (e.g. Application, Security, Setup etc.). Once you get the instance, you can write a LINQ query for filtering only entries marked with the given ID. Each entry is represented by &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face=Verdana&gt;EventLogEntry objects. The following code demonstrates how to accomplish this:&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; eLog &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;New&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;EventLog&lt;/SPAN&gt;(&lt;SPAN style="COLOR: #a31515"&gt;"Application"&lt;/SPAN&gt;)&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; specificEntries = &lt;SPAN style="COLOR: blue"&gt;From&lt;/SPAN&gt; logEntry &lt;SPAN style="COLOR: blue"&gt;In&lt;/SPAN&gt; eLog.Entries.Cast(&lt;SPAN style="COLOR: blue"&gt;Of&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;EventLogEntry&lt;/SPAN&gt;)()&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt"&gt;Where&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt"&gt; logEntry.InstanceId = &lt;SPAN style="COLOR: brown"&gt;9010&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;Select&lt;/SPAN&gt; logEntry&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P align=justify&gt;
&lt;P align=justify&gt;&lt;FONT color=#0000ff size=2 face=Verdana&gt;Notice how the code requires the &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face=Verdana&gt;&lt;FONT color=#000000 face="Courier New"&gt;Cast(Of T) &lt;/FONT&gt;operator which is often necessary in &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face=Verdana&gt;&lt;FONT color=#008000&gt;LINQ to Objects &lt;/FONT&gt;scenarios, especially in case the compiler cannot infer the appropriate type. The &lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face=Verdana&gt;&lt;FONT color=#000000 face="Courier New"&gt;EventLogEntry.InstanceId&lt;/FONT&gt; property allows comparing the desired ID event (on my machine the ID 9010 is about events generated by Team Foundation Server 2010 Basic). Then it is possible to perform further operations against the events set (e.g.&amp;nbsp;via a&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face=Verdana&gt;&amp;nbsp;&lt;FONT face="Courier New"&gt;For..Each &lt;/FONT&gt;loop)&amp;nbsp;in order to obtain information about each event, such as the application that raised the event (property &lt;FONT color=#000000 face="Courier New"&gt;EventLogEntry.Source&lt;/FONT&gt;) or&amp;nbsp;the event message&amp;nbsp;(property &lt;FONT color=#000000 face="Courier New"&gt;EventLogEntry.Message&lt;/FONT&gt;).&lt;/FONT&gt;&lt;/P&gt;
&lt;P align=justify&gt;&lt;FONT color=#008000 size=2 face=Verdana&gt;&lt;STRONG&gt;&lt;EM&gt;Alessandro&lt;/EM&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src ="http://community.visual-basic.it/alessandroenglish/aggbug/27588.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>alessandro.delsole@nospamvisual-basic.it</dc:creator><title>Listing files from a directory with LINQ and .NET 4.0</title><link>http://community.visual-basic.it/alessandroenglish/archive/2009/09/20/26450.aspx</link><pubDate>Sun, 20 Sep 2009 13:34:00 GMT</pubDate><guid>http://community.visual-basic.it/alessandroenglish/archive/2009/09/20/26450.aspx</guid><wfw:comment>http://community.visual-basic.it/alessandroenglish/comments/26450.aspx</wfw:comment><comments>http://community.visual-basic.it/alessandroenglish/archive/2009/09/20/26450.aspx#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://community.visual-basic.it/alessandroenglish/comments/commentRss/26450.aspx</wfw:commentRss><trackback:ping>http://community.visual-basic.it/alessandroenglish/services/trackbacks/26450.aspx</trackback:ping><description>&lt;P align=justify&gt;&lt;FONT color=#0000ff size=2 face=Verdana&gt;Every time a new version of the .NET Framework is available we probably think of new great technologies (or at least this is for me) but often there are also some small improvements to the Base Class Library. &lt;/FONT&gt;&lt;/P&gt;
&lt;P align=justify&gt;&lt;FONT color=#0000ff size=2 face=Verdana&gt;I just discovered that the &lt;FONT color=#000000 face="Courier New"&gt;System.IO.Directory&lt;/FONT&gt; class implementation in &lt;FONT color=#008000&gt;.NET Framework 4.0 Beta 1&lt;/FONT&gt; now exposes a method named &lt;FONT color=#000000 face="Courier New"&gt;EnumerateFiles&lt;/FONT&gt;, which works&amp;nbsp;like the well known &lt;FONT color=#000000 face="Courier New"&gt;GetFiles&lt;/FONT&gt;,&amp;nbsp;but&amp;nbsp;differs in that it returns an&amp;nbsp;&lt;FONT color=#000000 face="Courier New"&gt;IEnumerable(&lt;FONT color=#0000ff&gt;Of&lt;/FONT&gt; String)&lt;/FONT&gt; making the result directly queryable with &lt;FONT color=#a52a2a&gt;LINQ&lt;/FONT&gt;. &lt;/FONT&gt;&lt;/P&gt;
&lt;P align=justify&gt;&lt;FONT color=#0000ff size=2 face=Verdana&gt;This is an example:&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9.5pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; filesEnumerable &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;IEnumerable&lt;/SPAN&gt;(&lt;SPAN style="COLOR: blue"&gt;Of&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;String&lt;/SPAN&gt;) = &lt;SPAN style="COLOR: #2b91af"&gt;Directory&lt;/SPAN&gt;.EnumerateFiles(&lt;SPAN style="COLOR: #a31515"&gt;"C:\"&lt;/SPAN&gt;, &lt;SPAN style="COLOR: #a31515"&gt;"*.exe"&lt;/SPAN&gt;)&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P align=justify&gt;&lt;FONT color=#0000ff size=2 face=Verdana&gt;You use it exactly as &lt;FONT color=#000000 face="Courier New"&gt;GetFiles&lt;/FONT&gt;, but the result type is different.&amp;nbsp;The really cool thing is that you can query the result with&amp;nbsp;&lt;FONT color=#a52a2a&gt;LINQ&lt;/FONT&gt;, as in the following example where all file names containing the "document" literal are extracted from the given directory: &lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=2 face=Verdana&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9.5pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; fileList = &lt;SPAN style="COLOR: blue"&gt;From&lt;/SPAN&gt; everyFile &lt;SPAN style="COLOR: blue"&gt;In&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;Directory&lt;/SPAN&gt;.EnumerateFiles(&lt;SPAN style="COLOR: #a31515"&gt;"C:\"&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9.5pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;Where&lt;/SPAN&gt; everyFile.ToLowerInvariant.Contains(&lt;SPAN style="COLOR: #a31515"&gt;"document"&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9.5pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;Select&lt;/SPAN&gt; everyFile&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9.5pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9.5pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;For&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Each&lt;/SPAN&gt; item &lt;SPAN style="COLOR: blue"&gt;In&lt;/SPAN&gt; fileList&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9.5pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;Console&lt;/SPAN&gt;.WriteLine(&lt;SPAN style="COLOR: #a31515"&gt;"File name: {0}"&lt;/SPAN&gt;, item)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 9.5pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 9.5pt"&gt;Next&lt;/SPAN&gt;&lt;/P&gt;
&lt;P align=justify&gt;&lt;FONT color=#0000ff&gt;Of course the query is executed at the moment when its result is effectively used, as a typical LINQ mechanism. Similarly you can use general &lt;FONT color=#000000&gt;LINQ to Objects&lt;/FONT&gt; concepts in this scenario too. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P align=justify&gt;&lt;FONT color=#008000 size=2 face=Verdana&gt;&lt;EM&gt;&lt;STRONG&gt;Alessandro&lt;/STRONG&gt;&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src ="http://community.visual-basic.it/alessandroenglish/aggbug/26450.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>alessandro.delsole@nospamvisual-basic.it</dc:creator><title>ADO.NET Entity Framework - 3rd party providers</title><link>http://community.visual-basic.it/alessandroenglish/archive/2009/04/14/25321.aspx</link><pubDate>Tue, 14 Apr 2009 11:31:00 GMT</pubDate><guid>http://community.visual-basic.it/alessandroenglish/archive/2009/04/14/25321.aspx</guid><wfw:comment>http://community.visual-basic.it/alessandroenglish/comments/25321.aspx</wfw:comment><comments>http://community.visual-basic.it/alessandroenglish/archive/2009/04/14/25321.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://community.visual-basic.it/alessandroenglish/comments/commentRss/25321.aspx</wfw:commentRss><trackback:ping>http://community.visual-basic.it/alessandroenglish/services/trackbacks/25321.aspx</trackback:ping><description>&lt;P align=justify&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;One of the most interesting features in&amp;nbsp;&lt;FONT color=#008000&gt;ADO.NET Entity Framework&lt;/FONT&gt; is that it can be extended with external providers for databases different from &lt;FONT color=#a52a2a&gt;Microsoft SQL Server&lt;/FONT&gt;,&amp;nbsp;whose provider is shipped by default&amp;nbsp;with &lt;FONT color=#000000&gt;.NET Framework 3.5 Service Pack 1&lt;/FONT&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P align=justify&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;There is a list of available 3rd party providers for ADO.NET ENtity Framework on the MSDN data development portal, both RTM and beta providers.&amp;nbsp;&lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/en-us/data/dd363565.aspx"&gt;&lt;FONT face=Verdana color=#ff0000 size=2&gt;Click here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;&amp;nbsp;to be redirected to the MSDN page and you'll see important names such as Oracle, MySQL, PostgreSQL. If you work with ADO.NET Entity Framework, maybe you are interested into such topic. &lt;/FONT&gt;&lt;/P&gt;
&lt;P align=justify&gt;&lt;FONT face=Verdana color=#008000 size=2&gt;&lt;EM&gt;&lt;STRONG&gt;Alessandro&lt;/STRONG&gt;&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src ="http://community.visual-basic.it/alessandroenglish/aggbug/25321.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>alessandro.delsole@nospamvisual-basic.it</dc:creator><title>Strongly typed eager loading in Entity Framework with Visual Basic</title><link>http://community.visual-basic.it/alessandroenglish/archive/2009/01/19/24647.aspx</link><pubDate>Mon, 19 Jan 2009 22:59:00 GMT</pubDate><guid>http://community.visual-basic.it/alessandroenglish/archive/2009/01/19/24647.aspx</guid><wfw:comment>http://community.visual-basic.it/alessandroenglish/comments/24647.aspx</wfw:comment><comments>http://community.visual-basic.it/alessandroenglish/archive/2009/01/19/24647.aspx#Feedback</comments><slash:comments>22</slash:comments><wfw:commentRss>http://community.visual-basic.it/alessandroenglish/comments/commentRss/24647.aspx</wfw:commentRss><trackback:ping>http://community.visual-basic.it/alessandroenglish/services/trackbacks/24647.aspx</trackback:ping><description>&lt;DIV class=postText&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;In a &lt;A href="http://community.visual-basic.it/alessandroenglish/archive/2009/01/19/24645.aspx"&gt;&lt;FONT color=#ff0000&gt;previous post&lt;/FONT&gt; &lt;/A&gt;we discussed about creating data forms for showing master-details data representations with &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#008000&gt;Visual Basic 2008&lt;/FONT&gt;&amp;nbsp;and the&amp;nbsp;&lt;FONT color=#000000&gt;ADO.NET Entity Framework&lt;/FONT&gt; and we said that using strings&amp;nbsp;within the&amp;nbsp;eager loading technique could cause the loss of the benefits provided by the LINQ strongly typed approach.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;I then found a blog post by &lt;/FONT&gt;&lt;/SPAN&gt;&lt;A href="http://msmvps.com/blogs/matthieu"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#008000&gt;Matthieu Mezil&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt; (Microsoft Visual C# MVP), who solved the problem implementing a custom &lt;FONT face="Courier New" color=#000000&gt;Include &lt;/FONT&gt;method using lambda expressions instead of strings, taking the advantage of the strongly typed approach. Matthieu's code is&amp;nbsp;in Visual C#&amp;nbsp;with his help we converted the code into&amp;nbsp;&lt;FONT color=#a52a2a&gt;Visual Basic 2008&lt;/FONT&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;The code is quite short, but it requires a good knowledge of LINQ, so you'll find links to the MSDN library for each object we&amp;nbsp;will utilize.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;Let's retake the demo application we saw in the previous post then let's add a new module. In this module we must first add the following &lt;FONT face="Courier New"&gt;Imports &lt;/FONT&gt;directives: &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;Imports&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt; System.Runtime.CompilerServices&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;Imports&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt; System.Data.Objects&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;Imports&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt; System.Linq.Expressions&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;Imports&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt; System.Reflection&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;Once we've done this, let's type the following code which implements an extension&amp;nbsp;version&amp;nbsp;of the &lt;FONT face="Courier New" color=#000000&gt;Include &lt;/FONT&gt;method.&amp;nbsp;This is the code about the new module and that we'll comment below:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;EXTENSION()&gt;&lt;SPAN style="COLOR: blue"&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT color=#000000&gt;&amp;lt;Extension()&amp;gt; &lt;/FONT&gt;&lt;SPAN style="COLOR: blue"&gt;Module&lt;/SPAN&gt;&lt;FONT color=#000000&gt; ObjectQueryExtension&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;Extension()&amp;gt; _&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;Function&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&lt;FONT color=#000000&gt; Include(&lt;/FONT&gt;&lt;SPAN style="COLOR: blue"&gt;Of&lt;/SPAN&gt;&lt;FONT color=#000000&gt; T)(&lt;/FONT&gt;&lt;SPAN style="COLOR: blue"&gt;ByVal&lt;/SPAN&gt;&lt;FONT color=#000000&gt; MainQuery &lt;/FONT&gt;&lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt;&lt;FONT color=#000000&gt; ObjectQuery(&lt;/FONT&gt;&lt;SPAN style="COLOR: blue"&gt;Of&lt;/SPAN&gt;&lt;FONT color=#000000&gt; T), _&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;ByVal&lt;/SPAN&gt;&lt;FONT color=#000000&gt; SubSelector &lt;/FONT&gt;&lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt;&lt;FONT color=#000000&gt; Expression(&lt;/FONT&gt;&lt;SPAN style="COLOR: blue"&gt;Of&lt;/SPAN&gt;&lt;FONT color=#000000&gt; Func(&lt;/FONT&gt;&lt;SPAN style="COLOR: blue"&gt;Of&lt;/SPAN&gt;&lt;FONT color=#000000&gt; T, &lt;/FONT&gt;&lt;SPAN style="COLOR: blue"&gt;Object&lt;/SPAN&gt;&lt;FONT color=#000000&gt;))) _&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt;&lt;FONT color=#000000&gt; ObjectQuery(&lt;/FONT&gt;&lt;SPAN style="COLOR: blue"&gt;Of&lt;/SPAN&gt;&lt;FONT color=#000000&gt; T)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;Return&lt;/SPAN&gt;&lt;FONT color=#000000&gt; MainQuery.Include(&lt;/FONT&gt;&lt;SPAN style="COLOR: blue"&gt;CType&lt;/SPAN&gt;&lt;FONT color=#000000&gt;(&lt;/FONT&gt;&lt;SPAN style="COLOR: blue"&gt;CType&lt;/SPAN&gt;&lt;FONT color=#000000&gt;(&lt;/FONT&gt;&lt;SPAN style="COLOR: blue"&gt;CType&lt;/SPAN&gt;&lt;FONT color=#000000&gt;(SubSelector.Body,&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;_&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;UnaryExpression).Operand,&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;_&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;MemberExpression).Member,&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;_&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;PropertyInfo).Name)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;End&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT color=#000000&gt; &lt;/FONT&gt;&lt;SPAN style="COLOR: blue"&gt;Function&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;End&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT color=#000000&gt; &lt;/FONT&gt;&lt;SPAN style="COLOR: blue"&gt;Module&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;Extension methods must be adorned with the &lt;FONT face="Courier New" color=#000000&gt;Extension &lt;/FONT&gt;attribute and must be exposed by modules adorned with the same attribute. The Include method&amp;nbsp;requires a generic type&amp;nbsp;&lt;FONT face="Courier New"&gt;Of &lt;FONT color=#000000&gt;T&lt;/FONT&gt;&lt;/FONT&gt;. The first argument the method receives is of type &lt;FONT face="Courier New" color=#000000&gt;ObjectQuery(&lt;FONT color=#0000ff&gt;Of&lt;/FONT&gt; T)&lt;/FONT&gt;, that represents, in a strongly typed way, a query executed versus the &lt;FONT color=#a52a2a&gt;Entity Data Model&lt;/FONT&gt;. In our case the &lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/bb345303.aspx"&gt;&lt;FONT face="Courier New" color=#000000&gt;ObjectQuery&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#0000ff&gt; is constituted by the &lt;FONT face="Courier New" color=#000000&gt;NorthwindContext.Categories&lt;/FONT&gt; object. The secund argument is of type &lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/bb335710.aspx"&gt;&lt;FONT face="Courier New" color=#000000&gt;Expression&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#0000ff&gt;&lt;FONT face="Courier New" color=#000000&gt; (&lt;FONT color=#0000ff&gt;Of&lt;/FONT&gt; TDelegate)&lt;/FONT&gt;, and is a strongly typed representation of a lambda expression that is structured as an &lt;A href="http://msdn.microsoft.com/en-us/library/bb397951.aspx"&gt;&lt;FONT color=#008000&gt;expression tree&lt;/FONT&gt;&lt;/A&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;The method body invokes the &lt;FONT face="Courier New" color=#000000&gt;Include&lt;/FONT&gt; method versus the ObjectQuery instance that it received (in our sample it's always the&amp;nbsp;&lt;FONT face="Courier New" color=#000000&gt;NorthwindContext.Categories&lt;/FONT&gt;). &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;The lambda expression body is converted into an &lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/system.linq.expressions.unaryexpression.aspx"&gt;&lt;FONT face="Courier New" color=#000000&gt;UnaryExpression&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#0000ff&gt;. The result of this expression (&lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/system.linq.expressions.unaryexpression.operand.aspx"&gt;&lt;FONT face="Courier New" color=#000000&gt;Operand&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#0000ff&gt;) is then converted into a &lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/system.linq.expressions.memberexpression.aspx"&gt;&lt;FONT face="Courier New" color=#000000&gt;MemberExpression&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#0000ff&gt;, which is the infrastructure for accessing fields or properties&amp;nbsp;which are then accessed via the reflection.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;Invoking this method is quite easy. If we&amp;nbsp;would apply the method to the demo application we saw&amp;nbsp;in the &lt;A href="http://community.visual-basic.it/alessandroenglish/archive/2009/01/19/24645.aspx"&gt;&lt;FONT color=#ff0000&gt;previous post&lt;/FONT&gt;&lt;/A&gt;, we can replace the line of&amp;nbsp;code for&amp;nbsp;the eager loading as&amp;nbsp;follows:&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;'Dim dataSource = NorthwindContext.Categories.Include("Products")&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; dataSource = NorthwindContext.Categories.Include(&lt;SPAN style="COLOR: blue"&gt;Function&lt;/SPAN&gt;(c) c.Products)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;You can surely notice the difference. We are no more passing a string, because we are now passing a lambda expression that allows us working in a strongly typed way (with many advantages from this). The local type inference correctly assigns the &lt;FONT face="Courier New" color=#000000&gt;Categories&lt;/FONT&gt; type to the &lt;FONT face="Courier New" color=#000000&gt;c&lt;/FONT&gt; object&amp;nbsp;and the&amp;nbsp;&lt;FONT face="Courier New" color=#000000&gt;ObjectQuery(&lt;FONT color=#0000ff&gt;Of&lt;/FONT&gt; Categories)&lt;FONT color=#0000ff&gt; &lt;FONT face=Verdana&gt;type to the&lt;/FONT&gt;&amp;nbsp;&lt;FONT color=#000000&gt;dataSource&lt;/FONT&gt; &lt;FONT face=Verdana&gt;one&lt;/FONT&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;If you try to run the application you'll obtain the same result of the previous time, but this time we retrieved data&amp;nbsp;with a more efficient and "managed" approach. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#008000&gt;Alessandro&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;img src ="http://community.visual-basic.it/alessandroenglish/aggbug/24647.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>alessandro.delsole@nospamvisual-basic.it</dc:creator><title>Master-details forms with the ADO.NET Entity Framework</title><link>http://community.visual-basic.it/alessandroenglish/archive/2009/01/19/24645.aspx</link><pubDate>Mon, 19 Jan 2009 22:27:00 GMT</pubDate><guid>http://community.visual-basic.it/alessandroenglish/archive/2009/01/19/24645.aspx</guid><wfw:comment>http://community.visual-basic.it/alessandroenglish/comments/24645.aspx</wfw:comment><comments>http://community.visual-basic.it/alessandroenglish/archive/2009/01/19/24645.aspx#Feedback</comments><slash:comments>15</slash:comments><wfw:commentRss>http://community.visual-basic.it/alessandroenglish/comments/commentRss/24645.aspx</wfw:commentRss><trackback:ping>http://community.visual-basic.it/alessandroenglish/services/trackbacks/24645.aspx</trackback:ping><description>&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;If you are a little bit familiar with LINQ to SQL, you probably already know how simple is creating a basic &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#000000&gt;Windows Forms&lt;/FONT&gt; application for exposing &lt;EM&gt;one-to-many&lt;/EM&gt; relationships between entities via &lt;EM&gt;master-detail&lt;/EM&gt; representations&amp;nbsp;through the UI.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;In LINQ to SQL this&amp;nbsp;can be accomplished&amp;nbsp;using&amp;nbsp;the &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#a52a2a&gt;Microsoft Visual Studio 2008&lt;/FONT&gt; automation&amp;nbsp;engine that allow dragging and dropping objects (entities) from the &lt;FONT face="Courier New" color=#000000&gt;Data Sources&lt;/FONT&gt; window onto the target form. The IDE then adds the needed UI controls, manages the data-binding leaving to us the only job to specify in code the data source regarding the &amp;#8220;&lt;I style="mso-bidi-font-style: normal"&gt;one&lt;/I&gt;&amp;#8221; part in the relationship.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;Unfortunatley this is not&amp;nbsp;available when working with the ADO.NET Entity Framework (introduced by&amp;nbsp;&lt;/FONT&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7&amp;amp;DisplayLang=en"&gt;&lt;FONT color=#000000&gt;.NET Framework 3.5 Service Pack 1&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#0000ff&gt;); this means that&amp;nbsp;dragging just the "&lt;EM&gt;master&lt;/EM&gt;" data source onto the form will not automatically bind the "&lt;EM&gt;details&lt;/EM&gt;" as in &lt;FONT color=#008000&gt;LINQ-to-SQL&lt;/FONT&gt;, so we need to set this behavior manually.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;So, how can we accomplish this when working with EF? Another&amp;nbsp;Visual Basic MVP (&lt;/FONT&gt;&lt;A href="http://www.onteorasoftware.net/"&gt;&lt;FONT color=#008000&gt;Ken Tucker&lt;/FONT&gt;&lt;/A&gt;)&amp;nbsp;&lt;FONT color=#0000ff&gt;helped me&amp;nbsp;to find&amp;nbsp;the right way to solve the problem (thanks Ken)&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;Suppose you want to create a Windows Forms application to show tabular data,&amp;nbsp;inside two &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;&lt;FONT face="Courier New" color=#000000&gt;DataGridView &lt;/FONT&gt;controls, the content of the &lt;FONT face="Courier New" color=#000000&gt;Categories&lt;/FONT&gt;&amp;nbsp;and &lt;FONT face="Courier New" color=#000000&gt;Products &lt;/FONT&gt;tables&amp;nbsp;from the&amp;nbsp;&lt;FONT color=#008000&gt;Northwind&lt;/FONT&gt; database and that when selecting each category, in the second grid will be automatically bound and shown the related products.&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;When working with the Entity Framework, we need to recur to the so called &lt;FONT color=#a52a2a&gt;eager loading&lt;/FONT&gt; technique that we can realize invoking a method called Include. The following are the first steps required:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN: 0cm 0cm 0pt 21.3pt; TEXT-INDENT: -18pt; LINE-HEIGHT: normal; mso-add-space: auto; mso-list: l0 level1 lfo1" align=justify&gt;&lt;FONT color=#0000ff&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-fareast-font-family: Verdana; mso-bidi-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;1.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;creating a Windows Forms project with&amp;nbsp;&lt;FONT color=#a52a2a&gt;Visual Basic 2008&lt;/FONT&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0cm 0cm 0pt 21.3pt; TEXT-INDENT: -18pt; LINE-HEIGHT: normal; mso-add-space: auto; mso-list: l0 level1 lfo1" align=justify&gt;&lt;FONT color=#0000ff&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-fareast-font-family: Verdana; mso-bidi-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;2.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;establishing a database connection and adding a new &lt;FONT color=#008000&gt;Entity Data Model&lt;/FONT&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0cm 0cm 0pt 21.3pt; TEXT-INDENT: -18pt; LINE-HEIGHT: normal; mso-add-space: auto; mso-list: l0 level1 lfo1" align=justify&gt;&lt;FONT color=#0000ff&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-fareast-font-family: Verdana; mso-bidi-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;3.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;adding tables to the EDM (remember to select tables with relationships). In our example we'll add the &lt;FONT face="Courier New" color=#000000&gt;Categories&lt;/FONT&gt;&amp;nbsp;and &lt;FONT face="Courier New" color=#000000&gt;Products&lt;/FONT&gt; tables in Northwind;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN: 0cm 0cm 0pt 21.3pt; TEXT-INDENT: -18pt; LINE-HEIGHT: normal; mso-add-space: auto; mso-list: l0 level1 lfo1" align=justify&gt;&lt;FONT color=#0000ff&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-fareast-font-family: Verdana; mso-bidi-font-family: Verdana"&gt;&lt;SPAN style="mso-list: Ignore"&gt;4.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;adding a new data source&amp;nbsp;(&lt;FONT face="Courier New" color=#000000&gt;Data|Add New Data Source&lt;/FONT&gt; command) pointing to the &lt;FONT face="Courier New" color=#000000&gt;Categories&lt;/FONT&gt; object that was generated by the mapping.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;The&amp;nbsp;&lt;FONT face="Courier New" color=#000000&gt;Data Sources&lt;/FONT&gt; window should look like this:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;IMG src="/images/community_visual-basic_it/alessandro/533/o_EdmMasterDetail_1.jpg"&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;A this point we can drag the two objects &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;(&lt;FONT face="Courier New" color=#000000&gt;Categories&lt;/FONT&gt;&amp;nbsp;and &lt;FONT face="Courier New" color=#000000&gt;Products&lt;/FONT&gt;) onto the form&amp;nbsp;so that&amp;nbsp;Visual Studio can add the appropriate controls to the user interface which should look like this:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&lt;IMG src="/images/community_visual-basic_it/alessandro/533/o_EdmMasterDetail_2.jpg"&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;Now we can switch to the&amp;nbsp;&lt;FONT color=#008000&gt;Visual Basic &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;code&lt;/FONT&gt;. As we said before, we can't just simply assign the &lt;FONT face="Courier New" color=#000000&gt;Categories&lt;/FONT&gt; collection (or a&amp;nbsp;LINQ query result&amp;nbsp;for that collection)&amp;nbsp;to the&amp;nbsp;&lt;FONT face="Courier New" color=#000000&gt;DataSource&lt;/FONT&gt; property of the &lt;FONT face="Courier New" color=#000000&gt;BindingSource&lt;/FONT&gt; control (&lt;FONT face="Courier New" color=#000000&gt;CategoriesBindingSource&lt;/FONT&gt;), automatically implemented by Visual Studio, to get the&amp;nbsp;&lt;FONT face="Courier New" color=#000000&gt;ProductsBindingSource&lt;/FONT&gt; automatically updated&amp;nbsp;for showing details according to the item selected in the first one. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;According to what we just said, first of all we have to instantiate the EF&amp;nbsp;&lt;FONT face="Courier New" color=#000000&gt;ObjectContext&lt;/FONT&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;Private&lt;/SPAN&gt; NorthwindContext &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;New&lt;/SPAN&gt; NorthwindEntities&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;Once we've done this, we can specify the data source for the &amp;#8220;master&amp;#8221; part (please refer to the comments below):&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;'The include method&amp;nbsp;retrieves also related objects&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;Dim&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt; dataSource = NorthwindContext.Categories.Include(&lt;SPAN style="COLOR: #a31515"&gt;"Products"&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;'The primary data source is always Categories&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;CategoriesBindingSource.DataSource = dataSource&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;Then, invoking &lt;FONT face="Courier New" color=#000000&gt;Include&lt;/FONT&gt;, we can load also the details (&lt;FONT color=#a52a2a&gt;eager loading&lt;/FONT&gt;), as shown in the subsequent code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;'The Products' data source is still the CategoriesBindingSource control&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;'which contains both Products and Categories...&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;ProductsBindingSource.DataSource = CategoriesBindingSource&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;'...and of this control I can show just the collection I really need&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;'assigning to the DataMember property the name of the collection itself&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;ProductsBindingSource.DataMember = &lt;SPAN style="COLOR: #a31515"&gt;"Products"&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;Probably this situation puts some limitations: using a string is not a typical LINQ approach, where everything should be strongly typed. Now let's try to run the application. We can just select the rows in the Categories &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;&lt;FONT face="Courier New" color=#000000&gt;DataGridView&lt;/FONT&gt; to see how the Products one is automatically updated with details:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&lt;IMG src="/images/community_visual-basic_it/alessandro/533/o_EdmMasterDetail_3.jpg"&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;Obviously this is enough just to show data but some more code should be written if we want to allow the user adding new objects. At this point we must explicitly assign the &lt;FONT face="Courier New" color=#000000&gt;AllowNew &lt;/FONT&gt;property exposed by the &lt;FONT face="Courier New" color=#000000&gt;ProductsBindingSource&lt;/FONT&gt; control because, differently from LINQ-to-SQL, in Entity Framework this property is not set as True by default. According to this consideration, we can just specify the following line of code:&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;ProductsBindingSource.AllowNew = &lt;SPAN style="COLOR: blue"&gt;True&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;But this is not necessary regarding the&amp;nbsp;&lt;FONT face="Courier New" color=#000000&gt;Categories&lt;/FONT&gt;. Just to make the demo application complete, we can&amp;nbsp;provide the most basic implementation of a method for persisting data to the underlying database. Once enabled the Save button on the &lt;FONT face="Courier New" color=#000000&gt;BindingNavigator&lt;/FONT&gt;,&amp;nbsp;we can handle&amp;nbsp;its&amp;nbsp;&lt;FONT face="Courier New" color=#000000&gt;Click&lt;/FONT&gt; event:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;Private&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Sub&lt;/SPAN&gt; CategoriesBindingNavigatorSaveItem_Click(&lt;SPAN style="COLOR: blue"&gt;ByVal&lt;/SPAN&gt; sender &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; System.Object, _&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;ByVal&lt;/SPAN&gt; e &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; System.EventArgs) &lt;SPAN style="COLOR: blue"&gt;Handles&lt;/SPAN&gt; CategoriesBindingNavigatorSaveItem.Click&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;Try&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;NorthwindContext.SaveChanges()&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;Catch&lt;/SPAN&gt; ex &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; Exception&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;MessageBox.Show(&lt;SPAN style="COLOR: #a31515"&gt;"An error has occurred while saving changes to the database"&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Try&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-ansi-language: EN-US"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Sub&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal" align=justify&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;And that&amp;#8217;s all. You can download the source code for this post from this &lt;A href="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=AlessandroEnglish&amp;amp;DownloadId=4517"&gt;&lt;FONT color=#ff0000&gt;address&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;(&lt;A href="http://code.msdn.microsoft.com"&gt;&lt;FONT color=#008000&gt;MSDN Code Gallery&lt;/FONT&gt;&lt;/A&gt;).&amp;nbsp;Inside the zip archive you will find also .vsi installer (created with my &lt;A href="http://community.visual-basic.it/alessandro/articles/21331.aspx"&gt;&lt;FONT color=#008000&gt;Vsi Builder 2008&lt;/FONT&gt;&lt;/A&gt; tool) that will install a reusable code snippet for the &lt;FONT color=#a52a2a&gt;Visual Studio 2008 &lt;/FONT&gt;IntelliSense which includes the code related to the master-details data binding task as shown above. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;FONT color=#008000&gt;Alessandro&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;/P&gt;&lt;img src ="http://community.visual-basic.it/alessandroenglish/aggbug/24645.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>