<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Matthieu MEZIL : T4</title><link>http://msmvps.com/blogs/matthieu/archive/tags/T4/default.aspx</link><description>Tags: T4</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>EF and N-Tiers</title><link>http://msmvps.com/blogs/matthieu/archive/2009/12/12/ef-and-n-tiers.aspx</link><pubDate>Sun, 13 Dec 2009 00:56:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1745206</guid><dc:creator>Matthieu MEZIL</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/matthieu/rsscomments.aspx?PostID=1745206</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/matthieu/commentapi.aspx?PostID=1745206</wfw:comment><comments>http://msmvps.com/blogs/matthieu/archive/2009/12/12/ef-and-n-tiers.aspx#comments</comments><description>&lt;p&gt;Even if it’s really easier with Self-Tracking entities and EF4, a difficult point remains in N-Tiers scenarios.&lt;/p&gt;  &lt;p&gt;In a &lt;a href="http://msmvps.com/blogs/matthieu/archive/2009/11/24/data-oriented-wcf-service-agile-with-ef4-and-a-sort-of-provider-linq.aspx" target="_blank"&gt;previous post&lt;/a&gt;, I explained how with T4, I can generate all my WCF service. Now, what about the client tiers?&lt;/p&gt;  &lt;p&gt;I &lt;a href="http://msmvps.com/blogs/matthieu/archive/2009/11/24/data-oriented-wcf-service-agile-with-ef4-and-a-sort-of-provider-linq.aspx" target="_blank"&gt;explained&lt;/a&gt; how can I use LINQ queries and translate them into WCF service methods.&lt;/p&gt;  &lt;p&gt;Now my objective is to have a real context on the client tier. &lt;a href="http://msmvps.com/blogs/matthieu/archive/2009/11/04/ado-net-data-services-client.aspx" target="_blank"&gt;I already did it for ADO .NET Data Services using T4&lt;/a&gt;, I now have one (still with T4 of course) for WCF.&lt;/p&gt;  &lt;p&gt;One of my customers told me that he didn’t like the fact that with ADO .NET Data Services, when you want to access to the context collection, it implies a REST query by default. He wanted to use the cache by default. &lt;/p&gt;  &lt;p&gt;With my context, I have this and I use AsQueryable extension method to generate a query on the server.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;[&lt;span style="color:#2b91af;"&gt;TestClass&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:9.5pt;"&gt;public&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;UnitTest        &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;{      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; TestService()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;INorthwindService&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreNotEqual(&lt;span style="color:brown;"&gt;0&lt;/span&gt;, context.GetCustomers().Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; TestFilter()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;INorthwindService&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, context.GetCustomers(&lt;span style="color:blue;"&gt;null&lt;/span&gt;, &lt;span style="color:#a31515;"&gt;&amp;quot;it.CustomerID=&amp;#39;ALFKI&amp;#39;&amp;quot;&lt;/span&gt;, &lt;span style="color:blue;"&gt;null&lt;/span&gt;, &lt;span style="color:blue;"&gt;null&lt;/span&gt;, &lt;span style="color:blue;"&gt;null&lt;/span&gt;).Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; TestLINQWhere()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, (&lt;span style="color:blue;"&gt;from&lt;/span&gt; c &lt;span style="color:blue;"&gt;in&lt;/span&gt; context.Customers.AsQueryable()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;where&lt;/span&gt; c.CustomerID == &lt;span style="color:#a31515;"&gt;&amp;quot;ALFKI&amp;quot;        &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;select&lt;/span&gt; c).Count());       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; TestLINQWhere2()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; customerID = &lt;span style="color:#a31515;"&gt;&amp;quot;ALFKI&amp;quot;&lt;/span&gt;;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, (&lt;span style="color:blue;"&gt;from&lt;/span&gt; c &lt;span style="color:blue;"&gt;in&lt;/span&gt; context.Customers.AsQueryable()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;where&lt;/span&gt; c.CustomerID == customerID       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;select&lt;/span&gt; c).Count());       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; TestLINQWhere3()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; customer = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Customer&lt;/span&gt; { CustomerID = &lt;span style="color:#a31515;"&gt;&amp;quot;ALFKI&amp;quot;&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, (&lt;span style="color:blue;"&gt;from&lt;/span&gt; c &lt;span style="color:blue;"&gt;in&lt;/span&gt; context.Customers.AsQueryable()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;where&lt;/span&gt; c.CustomerID == customer.CustomerID       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;select&lt;/span&gt; c).Count());       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:consolas;font-size:9.5pt;mso-ansi-language:en-us;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&lt;/span&gt;&amp;#160;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; TestLINQWhere4()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreNotEqual(&lt;span style="color:brown;"&gt;0&lt;/span&gt;, (&lt;span style="color:blue;"&gt;from&lt;/span&gt; o &lt;span style="color:blue;"&gt;in&lt;/span&gt; context.Orders.AsQueryable()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;where&lt;/span&gt; o.OrderDate &amp;gt; &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;DateTime&lt;/span&gt;(&lt;span style="color:brown;"&gt;1997&lt;/span&gt;, &lt;span style="color:brown;"&gt;1&lt;/span&gt;, &lt;span style="color:brown;"&gt;31&lt;/span&gt;)       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;select&lt;/span&gt; o).Count());       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; TestLINQWhere5()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; d = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;DateTime&lt;/span&gt;(&lt;span style="color:brown;"&gt;1997&lt;/span&gt;, &lt;span style="color:brown;"&gt;1&lt;/span&gt;, &lt;span style="color:brown;"&gt;31&lt;/span&gt;);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreNotEqual(&lt;span style="color:brown;"&gt;0&lt;/span&gt;, (&lt;span style="color:blue;"&gt;from&lt;/span&gt; o &lt;span style="color:blue;"&gt;in&lt;/span&gt; context.Orders.AsQueryable()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;where&lt;/span&gt; o.OrderDate &amp;gt; d       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;select&lt;/span&gt; o).Count());       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:consolas;font-size:9.5pt;mso-ansi-language:en-us;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&lt;/span&gt;&amp;#160;&amp;#160; &lt;br /&gt;    &lt;br /&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; TestLINQTake()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;2&lt;/span&gt;, (&lt;span style="color:blue;"&gt;from&lt;/span&gt; c &lt;span style="color:blue;"&gt;in&lt;/span&gt; context.Customers.AsQueryable()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;select&lt;/span&gt; c).Take(&lt;span style="color:brown;"&gt;2&lt;/span&gt;).Count());       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; TestFirstAndInclude()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; order = (&lt;span style="color:blue;"&gt;from&lt;/span&gt; o &lt;span style="color:blue;"&gt;in&lt;/span&gt; context.Orders.AsQueryable().Include(&lt;span style="color:#2b91af;"&gt;Order&lt;/span&gt;.CUSTOMER_NAME).Include(&lt;span style="color:#2b91af;"&gt;Order&lt;/span&gt;.ORDERDETAILS_NAME)       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;where&lt;/span&gt; o.ShipCity == &lt;span style="color:#a31515;"&gt;&amp;quot;PARIS&amp;quot;        &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;orderby&lt;/span&gt; o.OrderDate       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;select&lt;/span&gt; o).Skip(&lt;span style="color:brown;"&gt;2&lt;/span&gt;).First();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.IsNotNull(order.Customer);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, context.Customers.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(order.Customer, context.Customers[&lt;span style="color:brown;"&gt;0&lt;/span&gt;]);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, context.Orders.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(order, context.Orders[&lt;span style="color:brown;"&gt;0&lt;/span&gt;]);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreNotEqual(&lt;span style="color:brown;"&gt;0&lt;/span&gt;, order.OrderDetails);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; NoTracking()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.MergeOption = &lt;span style="color:#2b91af;"&gt;MergeOption&lt;/span&gt;.NoTracking;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; l = context.Customers.AsQueryable().ToList();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;0&lt;/span&gt;, context.Customers.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreNotEqual(&lt;span style="color:brown;"&gt;0&lt;/span&gt;, l.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; AppendOnly()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.MergeOption = &lt;span style="color:#2b91af;"&gt;MergeOption&lt;/span&gt;.AppendOnly;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; l = context.Customers.AsQueryable().ToList();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(l.Count, context.Customers.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; AppendOnly2()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.MergeOption = &lt;span style="color:#2b91af;"&gt;MergeOption&lt;/span&gt;.AppendOnly;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Customer&lt;/span&gt; { CustomerID = &lt;span style="color:#a31515;"&gt;&amp;quot;ALFKI&amp;quot;&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Customers.Attach(c);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Customers.AsQueryable().ToList();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.IsNull(c.CompanyName);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;0&lt;/span&gt;, c.ChangeTracker.ModifiedProperties.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; OverwriteChanges()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.MergeOption = &lt;span style="color:#2b91af;"&gt;MergeOption&lt;/span&gt;.OverwriteChanges;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; l = context.Customers.AsQueryable().ToList();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(l.Count, context.Customers.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; OverwriteChanges2()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.MergeOption = &lt;span style="color:#2b91af;"&gt;MergeOption&lt;/span&gt;.OverwriteChanges;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Customer&lt;/span&gt; { CustomerID = &lt;span style="color:#a31515;"&gt;&amp;quot;ALFKI&amp;quot;&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Customers.Attach(c);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Customers.AsQueryable().ToList();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.IsNotNull(c.CompanyName);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;0&lt;/span&gt;, c.ChangeTracker.ModifiedProperties.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}      &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; PreserveChanges()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.MergeOption = &lt;span style="color:#2b91af;"&gt;MergeOption&lt;/span&gt;.PreserveChanges;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; l = context.Customers.AsQueryable().ToList();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(l.Count, context.Customers.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; PreserveChanges2()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.MergeOption = &lt;span style="color:#2b91af;"&gt;MergeOption&lt;/span&gt;.PreserveChanges;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Customer&lt;/span&gt; { CustomerID = &lt;span style="color:#a31515;"&gt;&amp;quot;ALFKI&amp;quot;&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Customers.Attach(c);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Customers.AsQueryable().ToList();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.IsNull(c.CompanyName);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreNotEqual(&lt;span style="color:brown;"&gt;0&lt;/span&gt;, c.ChangeTracker.ModifiedProperties.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.IsTrue(c.ChangeTracker.ModifiedProperties.Contains(&lt;span style="color:#a31515;"&gt;&amp;quot;CompanyName&amp;quot;&lt;/span&gt;));       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; Save()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:green;"&gt;//Add        &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; psCount = context.Products.AsQueryable().Count();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; p = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt; { ProductName = &lt;span style="color:#a31515;"&gt;&amp;quot;p&amp;quot;&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;context.Products.Add(p);      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.SaveChanges();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:9.5pt;"&gt;Assert&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;.AreNotEqual(&lt;span style="color:brown;"&gt;0&lt;/span&gt;, p.ProductID);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:#2b91af;"&gt;ObjectState&lt;/span&gt;.Unchanged, p.ChangeTracker.State);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(psCount + &lt;span style="color:brown;"&gt;1&lt;/span&gt;, context.Products.AsQueryable().ToList().Count);&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:green;"&gt;//Update        &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;p.ProductName = &lt;span style="color:#a31515;"&gt;&amp;quot;p2&amp;quot;&lt;/span&gt;;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, p.ChangeTracker.ModifiedProperties.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:#a31515;"&gt;&amp;quot;ProductName&amp;quot;&lt;/span&gt;, p.ChangeTracker.ModifiedProperties[&lt;span style="color:brown;"&gt;0&lt;/span&gt;]);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.SaveChanges();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.MergeOption = &lt;span style="color:#2b91af;"&gt;MergeOption&lt;/span&gt;.NoTracking;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; p2 = context.Products.AsQueryable().Where(pr =&amp;gt; pr.ProductID == p.ProductID).First();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreNotEqual(p, p2);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:#a31515;"&gt;&amp;quot;p2&amp;quot;&lt;/span&gt;, p2.ProductName);&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:green;"&gt;//Remove        &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Products.Remove(p);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:#2b91af;"&gt;ObjectState&lt;/span&gt;.Deleted, p.ChangeTracker.State);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.SaveChanges();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(psCount, context.Products.AsQueryable().ToList().Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; Save2()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; csCount = context.Categories.AsQueryable().Count();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c1 = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Category&lt;/span&gt; { CategoryName = &lt;span style="color:#a31515;"&gt;&amp;quot;cn&amp;quot;&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Categories.Add(c1);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; psCount = context.Products.AsQueryable().Count();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; p1 = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt; { ProductName = &lt;span style="color:#a31515;"&gt;&amp;quot;p1&amp;quot;&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; p2 = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt; { ProductName = &lt;span style="color:#a31515;"&gt;&amp;quot;p2&amp;quot;&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;context.Products.Add(p1);      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Products.Add(p2);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.SaveChanges();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:9.5pt;"&gt;using&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context2 = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(csCount + &lt;span style="color:brown;"&gt;1&lt;/span&gt;, context2.Categories.AsQueryable().Count());       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(psCount + &lt;span style="color:brown;"&gt;2&lt;/span&gt;, context2.Products.AsQueryable().Count());       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Categories.Remove(c1);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Products.Remove(p1);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;p2.ProductName = &lt;span style="color:#a31515;"&gt;&amp;quot;p2Bis&amp;quot;&lt;/span&gt;;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.SaveChanges();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:9.5pt;"&gt;using&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context2 = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(csCount, context2.Categories.AsQueryable().Count());       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(psCount + &lt;span style="color:brown;"&gt;1&lt;/span&gt;, context2.Products.AsQueryable().Count());       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:#a31515;"&gt;&amp;quot;p2Bis&amp;quot;&lt;/span&gt;, context2.Products.Last().ProductName);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Products.Remove(p2);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.SaveChanges();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context2 = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(psCount, context2.Products.AsQueryable().Count());       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; TestSaveManyToMany()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;CustomerDemographic&lt;/span&gt; cd;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;cd = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;CustomerDemographic&lt;/span&gt; { CustomerTypeID = &lt;span style="color:#a31515;"&gt;&amp;quot;CD&amp;quot;&lt;/span&gt;, CustomerDesc = &lt;span style="color:#a31515;"&gt;&amp;quot;cd desc&amp;quot;&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.CustomerDemographics.Add(cd);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.SaveChanges();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c = context.Customers.AsQueryable().First();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;c.CustomerDemographics.Add(cd);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:#2b91af;"&gt;ObjectState&lt;/span&gt;.Unchanged, cd.ChangeTracker.State);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, context.CustomerDemographics.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, cd.Customers.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.SaveChanges();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c = context.Customers.AsQueryable().Include(&lt;span style="color:#2b91af;"&gt;Customer&lt;/span&gt;.CUSTOMERDEMOGRAPHICS_NAME).First();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreNotEqual(&lt;span style="color:brown;"&gt;0&lt;/span&gt;, context.CustomerDemographics.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreNotEqual(&lt;span style="color:brown;"&gt;0&lt;/span&gt;, cd.Customers.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.CustomerDemographics.Remove(context.CustomerDemographics.First(cd2 =&amp;gt; cd2.CustomerTypeID.TrimEnd() == &lt;span style="color:#a31515;"&gt;&amp;quot;CD&amp;quot;&lt;/span&gt;));       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.SaveChanges();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; TestAddViaCollection()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;int&lt;/span&gt; psCount;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context2 = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;psCount = context2.Products.AsQueryable().Count();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c = context.Categories.AsQueryable().First();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; p = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt; { ProductName = &lt;span style="color:#a31515;"&gt;&amp;quot;pn&amp;quot;&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;c.Products.Add(p);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, c.Products.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, context.Products.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(context.Products[&lt;span style="color:brown;"&gt;0&lt;/span&gt;], p);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(p.Category, c);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(p.CategoryID, c.Id);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:#2b91af;"&gt;ObjectState&lt;/span&gt;.Added, p.ChangeTracker.State);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.SaveChanges();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context2 = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(psCount + &lt;span style="color:brown;"&gt;1&lt;/span&gt;, context2.Products.AsQueryable().Count());       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, c.Products.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Products.Remove(p);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;0&lt;/span&gt;, c.Products.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.SaveChanges();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; TestAddViaCollection2()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;int&lt;/span&gt; psCount;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context2 = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;psCount = context2.Products.AsQueryable().Count();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c = context.Categories.AsQueryable().First();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; p = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt; { ProductName = &lt;span style="color:#a31515;"&gt;&amp;quot;pn&amp;quot;&lt;/span&gt;, Category = c };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, c.Products.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, context.Products.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(context.Products[&lt;span style="color:brown;"&gt;0&lt;/span&gt;], p);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(p.Category, c);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(p.CategoryID, c.Id);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:#2b91af;"&gt;ObjectState&lt;/span&gt;.Added, p.ChangeTracker.State);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.SaveChanges();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context2 = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(psCount + &lt;span style="color:brown;"&gt;1&lt;/span&gt;, context2.Products.AsQueryable().Count());       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, c.Products.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Products.Remove(p);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;0&lt;/span&gt;, c.Products.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.SaveChanges();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; TestAddViaCollection3()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Category&lt;/span&gt; { CategoryName = &lt;span style="color:#a31515;"&gt;&amp;quot;cn&amp;quot;&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Categories.Add(c);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; p = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt; { ProductName = &lt;span style="color:#a31515;"&gt;&amp;quot;pn&amp;quot;&lt;/span&gt;, Category = c };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, c.Products.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, context.Products.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(context.Products[&lt;span style="color:brown;"&gt;0&lt;/span&gt;], p);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(c, p.Category);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(c.Id, p.CategoryID);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, context.Categories.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(c, context.Categories[&lt;span style="color:brown;"&gt;0&lt;/span&gt;]);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.SaveChanges();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(c, p.Category);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(c.Id, p.CategoryID);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, c.Products.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(p, c.Products[&lt;span style="color:brown;"&gt;0&lt;/span&gt;]);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Categories.Remove(c);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.IsNull(p.Category);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.IsNull(p.CategoryID);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:#2b91af;"&gt;ObjectState&lt;/span&gt;.Modified, p.ChangeTracker.State);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, p.ChangeTracker.ModifiedProperties.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:#a31515;"&gt;&amp;quot;CategoryID&amp;quot;&lt;/span&gt;, p.ChangeTracker.ModifiedProperties[&lt;span style="color:brown;"&gt;0&lt;/span&gt;]);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;context.SaveChanges();      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Products.Remove(p);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.SaveChanges();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;}      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; TestAddViaCollection4()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Category&lt;/span&gt; { CategoryName = &lt;span style="color:#a31515;"&gt;&amp;quot;cn&amp;quot;&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; p = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt; { ProductName = &lt;span style="color:#a31515;"&gt;&amp;quot;pn&amp;quot;&lt;/span&gt;, Category = c };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Categories.Add(c);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, c.Products.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, context.Products.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(context.Products[&lt;span style="color:brown;"&gt;0&lt;/span&gt;], p);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(p.Category, c);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(p.CategoryID, c.Id);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, context.Categories.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(c, context.Categories[&lt;span style="color:brown;"&gt;0&lt;/span&gt;]);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; TestAddViaCollection5()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Customer&lt;/span&gt; { CustomerID = &lt;span style="color:#a31515;"&gt;&amp;quot;A&amp;quot;&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; cd = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;CustomerDemographic&lt;/span&gt;();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;c.CustomerDemographics.Add(cd);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Customers.Attach(c);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, context.Customers.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, context.CustomerDemographics.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(c, context.Customers[&lt;span style="color:brown;"&gt;0&lt;/span&gt;]);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(cd, context.CustomerDemographics[&lt;span style="color:brown;"&gt;0&lt;/span&gt;]);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, cd.Customers.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;ExpectedException&lt;/span&gt;(&lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;InvalidOperationException&lt;/span&gt;))]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; TestEntitySetAttachWithSameKey()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Categories.Attach(&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Category&lt;/span&gt; { Id = &lt;span style="color:brown;"&gt;1&lt;/span&gt; });       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Categories.Attach(&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Category&lt;/span&gt; { Id = &lt;span style="color:brown;"&gt;1&lt;/span&gt; });       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;ExpectedException&lt;/span&gt;(&lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;InvalidOperationException&lt;/span&gt;))]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; TestEntitySetAddWithSameKey()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Customers.Add(&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Customer&lt;/span&gt; { CustomerID = &lt;span style="color:#a31515;"&gt;&amp;quot;C&amp;quot;&lt;/span&gt; });       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Customers.Add(&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Customer&lt;/span&gt; { CustomerID = &lt;span style="color:#a31515;"&gt;&amp;quot;C&amp;quot;&lt;/span&gt; });       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; TestEntitySetAddWithSameKeyIdentity()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Categories.Add(&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Category&lt;/span&gt; { Id = &lt;span style="color:brown;"&gt;0&lt;/span&gt; });       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Categories.Add(&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Category&lt;/span&gt; { Id = &lt;span style="color:brown;"&gt;0&lt;/span&gt; });       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&amp;#160;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;ExpectedException&lt;/span&gt;(&lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;InvalidOperationException&lt;/span&gt;))]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; TestNavigationPropertyManyAttachWithSameKey()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; cd = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;CustomerDemographic&lt;/span&gt; { CustomerTypeID = &lt;span style="color:#a31515;"&gt;&amp;quot;CD&amp;quot;&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.CustomerDemographics.Attach(cd);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Customers.Attach(&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Customer&lt;/span&gt; { CustomerID = &lt;span style="color:#a31515;"&gt;&amp;quot;C&amp;quot;&lt;/span&gt; });       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;cd.Customers.Attach(&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Customer&lt;/span&gt; { CustomerID = &lt;span style="color:#a31515;"&gt;&amp;quot;C&amp;quot;&lt;/span&gt; });       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;ExpectedException&lt;/span&gt;(&lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;InvalidOperationException&lt;/span&gt;))]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; TestNavigationPropertyManyAddWithSameKey()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; cd = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;CustomerDemographic&lt;/span&gt; { CustomerTypeID = &lt;span style="color:#a31515;"&gt;&amp;quot;CD&amp;quot;&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.CustomerDemographics.Attach(cd);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Customers.Attach(&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Customer&lt;/span&gt; { CustomerID = &lt;span style="color:#a31515;"&gt;&amp;quot;C&amp;quot;&lt;/span&gt; });       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;cd.Customers.Add(&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Customer&lt;/span&gt; { CustomerID = &lt;span style="color:#a31515;"&gt;&amp;quot;C&amp;quot;&lt;/span&gt; });       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; MultipleAddAttachOfSameObject()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Customer&lt;/span&gt; { CustomerID = &lt;span style="color:#a31515;"&gt;&amp;quot;C&amp;quot;&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Customers.Add(c);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Customers.Add(c);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Customers.Attach(c);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;CustomerDemographic&lt;/span&gt; { CustomerTypeID = &lt;span style="color:#a31515;"&gt;&amp;quot;CD&amp;quot;&lt;/span&gt; }.Customers.Add(c);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, context.Customers.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; MultipleRelationAddAttachOfSameObject()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Customer&lt;/span&gt; { CustomerID = &lt;span style="color:#a31515;"&gt;&amp;quot;C&amp;quot;&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; cd = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;CustomerDemographic&lt;/span&gt; { CustomerTypeID = &lt;span style="color:#a31515;"&gt;&amp;quot;CD&amp;quot;&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;c.CustomerDemographics.Add(cd);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;c.CustomerDemographics.Add(cd);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;c.CustomerDemographics.Attach(cd);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, c.CustomerDemographics.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, cd.Customers.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; DeleteCascade()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; o = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Order&lt;/span&gt;();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; od = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;OrderDetail&lt;/span&gt; { Order = o };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:#2b91af;"&gt;ObjectState&lt;/span&gt;.Detached, o.ChangeTracker.State);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:#2b91af;"&gt;ObjectState&lt;/span&gt;.Detached, od.ChangeTracker.State);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Orders.Add(o);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:#2b91af;"&gt;ObjectState&lt;/span&gt;.Added, o.ChangeTracker.State);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:#2b91af;"&gt;ObjectState&lt;/span&gt;.Added, od.ChangeTracker.State);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Orders.Remove(o);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:#2b91af;"&gt;ObjectState&lt;/span&gt;.Detached, o.ChangeTracker.State);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:#2b91af;"&gt;ObjectState&lt;/span&gt;.Detached, od.ChangeTracker.State);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&amp;#160;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; DeleteCascade2()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; o = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Order&lt;/span&gt;();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; od = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;OrderDetail&lt;/span&gt; { Order = o, Product = context.Products.AsQueryable().First(), Discount = &lt;span style="color:brown;"&gt;0&lt;/span&gt;, Quantity = &lt;span style="color:brown;"&gt;1&lt;/span&gt;, UnitPrice = &lt;span style="color:brown;"&gt;10&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;context.Orders.Add(o);      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.SaveChanges();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:9.5pt;"&gt;var&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt; od2 = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;OrderDetail&lt;/span&gt; { Order = o };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Orders.Remove(o);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:#2b91af;"&gt;ObjectState&lt;/span&gt;.Deleted, o.ChangeTracker.State);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:#2b91af;"&gt;ObjectState&lt;/span&gt;.Deleted, od.ChangeTracker.State);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:#2b91af;"&gt;ObjectState&lt;/span&gt;.Detached, od2.ChangeTracker.State);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.SaveChanges();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; AttachRelationInLoad()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Category&lt;/span&gt; { Id = &lt;span style="color:brown;"&gt;1&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Categories.Attach(c);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; p = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt; { CategoryID = &lt;span style="color:brown;"&gt;1&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Products.Attach(p);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(c, p.Category);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, c.Products.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(p, c.Products[&lt;span style="color:brown;"&gt;0&lt;/span&gt;]);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; AttachRelationInLoad2()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Category&lt;/span&gt; { Id = &lt;span style="color:brown;"&gt;1&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Categories.Add(c);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; p = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt; { CategoryID = &lt;span style="color:brown;"&gt;1&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Products.Add(p);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(c, p.Category);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, c.Products.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(p, c.Products[&lt;span style="color:brown;"&gt;0&lt;/span&gt;]);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; AttachRelationInLoad3()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; p = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt; { CategoryID = &lt;span style="color:brown;"&gt;1&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Products.Attach(p);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Category&lt;/span&gt; { Id = &lt;span style="color:brown;"&gt;1&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Categories.Attach(c);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(c, p.Category);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, c.Products.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(p, c.Products[&lt;span style="color:brown;"&gt;0&lt;/span&gt;]);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; AttachRelationInLoad4()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; p = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt; { CategoryID = &lt;span style="color:brown;"&gt;1&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Products.Add(p);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Category&lt;/span&gt; { Id = &lt;span style="color:brown;"&gt;1&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Categories.Add(c);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(c, p.Category);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, c.Products.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(p, c.Products[&lt;span style="color:brown;"&gt;0&lt;/span&gt;]);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; AttachRelationInLoad5()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Products.AsQueryable().ToList();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c = context.Categories.AsQueryable().First();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(context.Products.Where(p =&amp;gt; p.CategoryID == c.Id).Count(), c.Products.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;foreach&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; p &lt;span style="color:blue;"&gt;in&lt;/span&gt; context.Products.Where(p =&amp;gt; p.CategoryID == c.Id))       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(c, p.Category);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;Assert&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;.IsTrue(c.Products.Contains(p));      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;}      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; AttachRelationInLoad6()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c = context.Categories.AsQueryable().First();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Products.AsQueryable().ToList();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(context.Products.Where(p =&amp;gt; p.CategoryID == c.Id).Count(), c.Products.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;foreach&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; p &lt;span style="color:blue;"&gt;in&lt;/span&gt; context.Products.Where(p =&amp;gt; p.CategoryID == c.Id))       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(c, p.Category);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;Assert&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;.IsTrue(c.Products.Contains(p));      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;}      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; AttachRelationInLoad7()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Products.AsQueryable().ToList();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c = context.Categories.AsQueryable().Include(&lt;span style="color:#2b91af;"&gt;Category&lt;/span&gt;.PRODUCTS_NAME).First();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(context.Products.Where(p =&amp;gt; p.CategoryID == c.Id).Count(), c.Products.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;foreach&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; p &lt;span style="color:blue;"&gt;in&lt;/span&gt; context.Products.Where(p =&amp;gt; p.CategoryID == c.Id))       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(c, p.Category);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;Assert&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;.IsTrue(c.Products.Contains(p));      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;}      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; AttachRelationInLoad8()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Products.AsQueryable().ToList();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Category&lt;/span&gt; { Id = &lt;span style="color:brown;"&gt;1&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Categories.Attach(c);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c2 = context.Categories.AsQueryable().Include(&lt;span style="color:#2b91af;"&gt;Category&lt;/span&gt;.PRODUCTS_NAME).First();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(c, c2);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(context.Products.Where(p =&amp;gt; p.CategoryID == c.Id).Count(), c.Products.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;foreach&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; p &lt;span style="color:blue;"&gt;in&lt;/span&gt; context.Products.Where(p =&amp;gt; p.CategoryID == c.Id))       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(c, p.Category);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;Assert&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;.IsTrue(c.Products.Contains(p));      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;}      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; AttachRelationInLoad9()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Category&lt;/span&gt; { CategoryName = &lt;span style="color:#a31515;"&gt;&amp;quot;cn&amp;quot;&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; p = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt; { ProductName = &lt;span style="color:#a31515;"&gt;&amp;quot;pn&amp;quot;&lt;/span&gt;, Category = c };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Categories.Add(c);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, context.Products.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.SaveChanges();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt; p2;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context2 = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c2 = context2.Categories.AsQueryable().Include(&lt;span style="color:#2b91af;"&gt;Category&lt;/span&gt;.PRODUCTS_NAME).Where(c3 =&amp;gt; c3.Id == c.Id).First();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;p2 = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt; { ProductName = &lt;span style="color:#a31515;"&gt;&amp;quot;pn2&amp;quot;&lt;/span&gt; };       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;c2.Products.Add(p2);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context2.SaveChanges();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c4 = context.Categories.AsQueryable().Include(&lt;span style="color:#2b91af;"&gt;Category&lt;/span&gt;.PRODUCTS_NAME).Where(c3 =&amp;gt; c3.Id == c.Id).First();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(c, c4);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.IsTrue(c.Products.Contains(p));       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.IsFalse(c.Products.Contains(p2));       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; p3 = c.Products.First(p4 =&amp;gt; p4.ProductID == p2.ProductID);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;Assert&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;.IsTrue(c.Products.Contains(p3));      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.IsTrue(context.Products.Contains(p3));       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;" lang="FR"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;context.Products.Remove(p3);      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Products.Remove(p);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Categories.Remove(c);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(c.Id, p.CategoryID);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(c.Id, p3.CategoryID);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.SaveChanges();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; AttachRelationInLoad10()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; p = context.Products.AsQueryable().First();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Orders.Attach(&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Order&lt;/span&gt;());       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; od = context.OrderDetails.AsQueryable().Where(od2 =&amp;gt; od2.ProductID == p.ProductID).First();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; p2 = (&lt;span style="color:blue;"&gt;from&lt;/span&gt; p3 &lt;span style="color:blue;"&gt;in&lt;/span&gt; context.Products.AsQueryable().Include(&lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt;.CATEGORY_NAME).Include(&lt;span style="color:blue;"&gt;string&lt;/span&gt;.Concat(&lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt;.ORDERDETAILS_NAME, &lt;span style="color:#a31515;"&gt;&amp;quot;.&amp;quot;&lt;/span&gt;, &lt;span style="color:#2b91af;"&gt;OrderDetail&lt;/span&gt;.ORDER_NAME))       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;where&lt;/span&gt; p3.ProductID == p.ProductID       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;select&lt;/span&gt; p3).First();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(p, p2);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.IsNotNull(p.Category);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, context.Categories.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(p.OrderDetails.Count, context.OrderDetails.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;foreach&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; od2 &lt;span style="color:blue;"&gt;in&lt;/span&gt; p.OrderDetails)       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.IsNotNull(od2.Order);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(p.OrderDetails.Select(od3 =&amp;gt; od3.Order).Distinct().Count() + &lt;span style="color:brown;"&gt;1&lt;/span&gt;, context.Orders.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreNotEqual(&lt;span style="color:brown;"&gt;0&lt;/span&gt;, context.Orders.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;ExpectedException&lt;/span&gt;(&lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;InvalidOperationException&lt;/span&gt;))]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; AddSameEntityInDifferentContext()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; p = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt;();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context1 = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context1.Products.Add(p);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context2 = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context2.Products.Add(p);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]         &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;ExpectedException&lt;/span&gt;(&lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;InvalidOperationException&lt;/span&gt;))]         &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; AddSameEntityFromServiceInDifferentContext()         &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{         &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt; p;         &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context1 = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())         &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{         &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;p = context1.Products.AsQueryable().First();         &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context2 = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())         &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{         &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context2.Products.Add(p);         &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}         &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}         &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;        &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]         &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; AddSameEntityInDifferentContextWithDispose()         &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{         &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; p = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt;();         &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context1 = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())         &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{         &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context1.Products.Add(p);         &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}         &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context2 = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())         &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{         &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context2.Products.Add(p);         &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}         &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]        &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;ExpectedException&lt;/span&gt;(&lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;InvalidOperationException&lt;/span&gt;))]        &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; AddSameEntityInDifferentContextWithDisposeAndConflicts()        &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{        &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Category&lt;/span&gt; { Id = &lt;span style="color:brown;"&gt;1&lt;/span&gt; };        &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; p1 = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt; { ProductID = &lt;span style="color:brown;"&gt;1&lt;/span&gt;, Category = c };        &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; p2 = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt; { ProductID = &lt;span style="color:brown;"&gt;2&lt;/span&gt; , CategoryID = &lt;span style="color:brown;"&gt;1&lt;/span&gt;};        &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context1 = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())        &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{        &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context1.Categories.Attach(c);        &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context1.Products.Attach(p2);        &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;2&lt;/span&gt;, context1.Products.Count);        &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;2&lt;/span&gt;, c.Products.Count);        &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(c, p2.Category);        &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}        &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context2 = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())        &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{        &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; p3 = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt; { ProductID = &lt;span style="color:brown;"&gt;1&lt;/span&gt; , CategoryID = &lt;span style="color:brown;"&gt;1&lt;/span&gt;};        &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context2.Products.Attach(p3);        &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context2.Categories.Attach(c);        &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}        &lt;br /&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:consolas;font-size:9.5pt;mso-ansi-language:en-us;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; LoadFromOneToMany()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c = context.Categories.AsQueryable().First();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;0&lt;/span&gt;, c.Products.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;0&lt;/span&gt;, context.Products.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; ps = c.LoadProducts();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreNotEqual(&lt;span style="color:brown;"&gt;0&lt;/span&gt;, ps.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(ps.Count, c.Products.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(ps.Count, context.Products.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;foreach&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; p &lt;span style="color:blue;"&gt;in&lt;/span&gt; ps)       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(c, p.Category);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;ExpectedException&lt;/span&gt;(&lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;InvalidOperationException&lt;/span&gt;))]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; LoadFromOneToManyDetached()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Category&lt;/span&gt; c;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;c = context.Categories.AsQueryable().First();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; ps = c.LoadProducts();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; LoadFromManyToOne()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; p = context.Products.AsQueryable().First();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.IsNull(p.Category);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;0&lt;/span&gt;, context.Categories.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c = p.LoadCategory();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.IsNotNull(c);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(c, p.Category);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, context.Categories.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, c.Products.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(p, c.Products[&lt;span style="color:brown;"&gt;0&lt;/span&gt;]);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; LoadFromManyToMany()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c = (&lt;span style="color:blue;"&gt;from&lt;/span&gt; cust &lt;span style="color:blue;"&gt;in&lt;/span&gt; context.Customers.AsQueryable()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;where&lt;/span&gt; cust.CustomerID == &lt;span style="color:#a31515;"&gt;&amp;quot;VINET&amp;quot;        &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;select&lt;/span&gt; cust).First();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;0&lt;/span&gt;, c.CustomerDemographics.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;0&lt;/span&gt;, context.CustomerDemographics.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;c.LoadCustomerDemographics();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreNotEqual(&lt;span style="color:brown;"&gt;0&lt;/span&gt;, c.CustomerDemographics.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(c.CustomerDemographics.Count, context.CustomerDemographics.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; LoadFromOneToOne()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c = context.Customers.AsQueryable().First();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.IsNull(c.Member);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;0&lt;/span&gt;, context.Members.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; m = c.LoadMember();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.IsNotNull(c.Member);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, context.Members.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(c, m.Customer);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; OfType()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; employeesInActivity = context.Employees.AsQueryable().OfType&amp;lt;&lt;span style="color:#2b91af;"&gt;EmployeeInActivity&lt;/span&gt;&amp;gt;().ToList();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(employeesInActivity.Count, context.Employees.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(employeesInActivity.Count, context.EmployeeInActivities.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;0&lt;/span&gt;, context.OutEmployees.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; AddIntoBaseEntitySet()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; firedEmployee = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;FiredEmployee&lt;/span&gt;();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Employees.Attach(firedEmployee);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, context.Employees.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, context.OutEmployees.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, context.FiredEmployees.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; GetAllEntitiesWithInheritance()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; l = context.Employees.AsQueryable().ToList();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(l.Count, context.Employees.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(l.OfType&amp;lt;&lt;span style="color:#2b91af;"&gt;OutEmployee&lt;/span&gt;&amp;gt;().Count(), context.OutEmployees.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(l.OfType&amp;lt;&lt;span style="color:#2b91af;"&gt;FiredEmployee&lt;/span&gt;&amp;gt;().Count(), context.FiredEmployees.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreNotEqual(&lt;span style="color:brown;"&gt;0&lt;/span&gt;, context.FiredEmployees.Count);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:consolas;font-size:9.5pt;mso-ansi-language:en-us;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;/span&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;/p&gt; &lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; Detach()     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Category&lt;/span&gt; { Id = &lt;span style="color:brown;"&gt;1&lt;/span&gt; };     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Categories.Attach(c);     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; p = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt; { CategoryID = &lt;span style="color:brown;"&gt;1&lt;/span&gt; };     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Products.Attach(p);     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(c, p.Category);     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Categories.Detach(c);     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.IsNull(p.Category);     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(c.Id, p.CategoryID);     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;    &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; UpdateFK()     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;())     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c1 = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Category&lt;/span&gt; { Id = &lt;span style="color:brown;"&gt;1&lt;/span&gt; };     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Categories.Attach(c1);     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; c2 = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Category&lt;/span&gt; { Id = &lt;span style="color:brown;"&gt;2&lt;/span&gt; };     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Categories.Attach(c2);     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; p = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt; { CategoryID = &lt;span style="color:brown;"&gt;1&lt;/span&gt; };     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.Products.Attach(p);     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(c1, p.Category);     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, c1.Products.Count);     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;p.CategoryID = &lt;span style="color:brown;"&gt;2&lt;/span&gt;;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(c2, p.Category);     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;0&lt;/span&gt;, c1.Products.Count);     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:brown;"&gt;1&lt;/span&gt;, c2.Products.Count);     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:consolas;font-size:9.5pt;mso-ansi-language:en-us;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;}&lt;/span&gt;   &lt;p&gt;&lt;/p&gt;  &lt;p&gt;I used this EDM for my tests:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/matthieu.metablogapi/0513.image_5F00_32005B30.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/matthieu.metablogapi/1273.image_5F00_thumb_5F00_453DBF77.png" width="1385" height="929" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Moreover, with self-tracking default template the generated SQL update includes all columns even if only one property changed. With my implementation the update will contain only the modified column. Note that this is not true for complex types. If one complex type’s property changes, all the columns mapped on this complex type will be included in the update. It is an EF limitation. &lt;/p&gt;  &lt;p&gt;To realize it, I add a list of string ModifiedProperties in ObjectChangeTracker class (I update the self-tracking types T4 template). Then I also change the self-tracking context T4 template. I replace:&lt;/p&gt;  &lt;p&gt;&lt;span style="line-height:115%;font-family:consolas;font-size:9.5pt;mso-ansi-language:en-us;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;context.ObjectStateManager.ChangeObjectState(entity, &lt;span style="color:#2b91af;"&gt;EntityState&lt;/span&gt;.Modified);&lt;/span&gt; &lt;/p&gt;  &lt;p&gt;by&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;context.ObjectStateManager.ChangeObjectState(entity, &lt;span style="color:#2b91af;"&gt;EntityState&lt;/span&gt;.Unchanged);       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:9.5pt;"&gt;var&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt; ose = context.ObjectStateManager.GetObjectStateEntry(entity);      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt;ose.SetModified();      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:9.5pt;"&gt;foreach&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; propertyName &lt;span style="color:blue;"&gt;in&lt;/span&gt; entity.ChangeTracker.ModifiedProperties)&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:consolas;font-size:9.5pt;mso-ansi-language:en-us;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;ose.SetModifiedProperty(propertyName);&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;If you want to learn more about my templates, I will speak about this for &lt;a href="http://www.microsoft.com/france/mstechdays/programmes/parcours.aspx?Key=&amp;amp;AUDIENCE=&amp;amp;PRODUIT=&amp;amp;LEVEL=&amp;amp;SpkID=84cffae7-0f58-4e65-9631-11f7b31ef9ff" target="_blank"&gt;next French Microsoft Tech Days in Paris&lt;/a&gt; and for the &lt;a href="http://confoo.ca/en/2010/session/entity-framework-que-du-bonheur" target="_blank"&gt;confoo in Montreal&lt;/a&gt; (also in French).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1745206" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/matthieu/archive/tags/.Net/default.aspx">.Net</category><category domain="http://msmvps.com/blogs/matthieu/archive/tags/Entity+Framework+_2800_EF_2900_/default.aspx">Entity Framework (EF)</category><category domain="http://msmvps.com/blogs/matthieu/archive/tags/Entity+Data+Model+_2800_EDM_2900_/default.aspx">Entity Data Model (EDM)</category><category domain="http://msmvps.com/blogs/matthieu/archive/tags/T4/default.aspx">T4</category></item><item><title>Data oriented WCF service Agile with EF4 and a “sort of” provider LINQ</title><link>http://msmvps.com/blogs/matthieu/archive/2009/11/24/data-oriented-wcf-service-agile-with-ef4-and-a-sort-of-provider-linq.aspx</link><pubDate>Wed, 25 Nov 2009 00:17:38 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1742036</guid><dc:creator>Matthieu MEZIL</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/matthieu/rsscomments.aspx?PostID=1742036</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/matthieu/commentapi.aspx?PostID=1742036</wfw:comment><comments>http://msmvps.com/blogs/matthieu/archive/2009/11/24/data-oriented-wcf-service-agile-with-ef4-and-a-sort-of-provider-linq.aspx#comments</comments><description>&lt;p&gt;I use a different approach than &lt;a href="http://thedatafarm.com/blog/data-access" target="_blank"&gt;Julie’s one&lt;/a&gt; for EF Agile development. Indeed, I use here Self-Tracking Entities and I massively use T4.&lt;/p&gt;  &lt;p&gt;The first step is to create a project DAL in which we will add an edmx. &lt;/p&gt;  &lt;p&gt;In my sample, I use Northwind DataBase with only the Customers, Orders and [Order Details] tables.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/matthieu.metablogapi/0458.image_5F00_0215522E.png"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/matthieu.metablogapi/6403.image_5F00_thumb_5F00_23A15532.png" width="608" height="420" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;When it’s done, we will add a new item of type ADO.NET Self-Tracking Entity Generator to our project.&lt;/p&gt;  &lt;p&gt;It will add two T4 templates to our project: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;one with entities + some classes and interfaces for Self-Tracking &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/matthieu.metablogapi/2514.image_5F00_261A6123.png"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/matthieu.metablogapi/6724.image_5F00_thumb_5F00_1EEAFEDE.png" width="1422" height="1216" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;one with the context + a static class with extension methods. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;We will move our entities template into another project Entities.&lt;/p&gt;  &lt;p&gt;Then we have to add the Entities reference in our DAL project. We will also set the edmx path in our templates. &lt;/p&gt;  &lt;p&gt;Then, we will create a new project Repositories. In this project, we will define an interface INorthwindRepository.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/matthieu.metablogapi/8461.image_5F00_1449DF24.png"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/matthieu.metablogapi/2514.image_5F00_thumb_5F00_49FF247E.png" width="1145" height="612" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;We can see the redundancy of INorthwindRepository. That’s why, in my sample, these interfaces (INorthwindRepository and IEntitySet) are also generated with a T4 template which uses my edmx. What is great here is the fact that if we change our data model (my edmx), we have no more code to write. We just have to regenerate all my T4 templates.&lt;/p&gt;  &lt;p&gt;Now, we will go back to my context. It has to implement INorthwindRepository. For this, we will update my T4 template to have this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/matthieu.metablogapi/8877.image_5F00_2967BEFF.png"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/matthieu.metablogapi/2117.image_5F00_thumb_5F00_59CE1DA8.png" width="1422" height="867" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;For WCF, we need a contract. So I will add two new projects: Services and ServiceContracts (with T4).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/matthieu.metablogapi/6724.image_5F00_6BF698D0.png"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/matthieu.metablogapi/6215.image_5F00_thumb_5F00_7C2260C9.png" width="771" height="544" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/matthieu.metablogapi/0451.image_5F00_755F3179.png"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/matthieu.metablogapi/1512.image_5F00_thumb_5F00_712533E7.png" width="822" height="625" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;So now, if you already have the T4 templates (which are independent of the project), you wrote 0 lines of code!&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;We can see the assemblies independence with EF (except for the DAL of course) :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/matthieu.metablogapi/8877.image_5F00_71ED7404.png"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/matthieu.metablogapi/4657.image_5F00_thumb_5F00_36B99839.png" width="308" height="1046" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I wanted to use &lt;a href="http://www.codeplex.com/unity/" target="_blank"&gt;Unity&lt;/a&gt;. To do it, I use &lt;a href="http://www.silverlightshow.net/items/Deep-dive-into-WCF-part-1-TDD.aspx" target="_blank"&gt;Alexey Zakharov approach&lt;/a&gt;. So I integrate his WCFFacility project and classes Bootstrapper and UnityServiceLocatorAdapter in my WCFService (web project host). After creating the svc and the config file, my service is finished!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now in the client tier, I wanted to use a “sort of” provider LINQ. For this, I inspired from &lt;a href="http://msmvps.com/blogs/matthieu/archive/2009/04/28/french-alt-net-demo.aspx" target="_blank"&gt;one of my old demo&lt;/a&gt; made for &lt;a href="http://www.altnetfr.org/" target="_blank"&gt;ALT.NET French community&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;We will create a Client.LINQ project in which we will define two classes: ClientLINQ and MyQueryable.&lt;/p&gt;  &lt;p style="line-height:normal;margin-bottom:0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;"&gt;public&lt;/span&gt;&lt;span style="font-family:consolas;"&gt; &lt;span style="color:blue;"&gt;static&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ClientLINQ        &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;{      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;static&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MyQueryable&lt;/span&gt;&amp;lt;T&amp;gt; Where&amp;lt;T&amp;gt;(&lt;span style="color:blue;"&gt;this&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MyQueryable&lt;/span&gt;&amp;lt;T&amp;gt; source, &lt;span style="color:#2b91af;"&gt;Expression&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;Func&lt;/span&gt;&amp;lt;T, &lt;span style="color:blue;"&gt;bool&lt;/span&gt;&amp;gt;&amp;gt; where)       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;source.WhereValue = &lt;span style="color:blue;"&gt;string&lt;/span&gt;.Concat(source.WhereValue ?? &lt;span style="color:#a31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, where.Body.ToString().Replace(&lt;span style="color:blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#a31515;"&gt;&amp;quot;{0}.&amp;quot;&lt;/span&gt;, where.Parameters[&lt;span style="color:brown;"&gt;0&lt;/span&gt;].Name), &lt;span style="color:#a31515;"&gt;&amp;quot;it.&amp;quot;&lt;/span&gt;).Replace(&lt;span style="color:#a31515;"&gt;&amp;quot;\&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#a31515;"&gt;&amp;quot;&amp;#39;&amp;quot;&lt;/span&gt;).Replace(&lt;span style="color:#a31515;"&gt;&amp;quot;||&amp;quot;&lt;/span&gt;, &lt;span style="color:#a31515;"&gt;&amp;quot; OR &amp;quot;&lt;/span&gt;).Replace(&lt;span style="color:#a31515;"&gt;&amp;quot;&amp;amp;&amp;amp;&amp;quot;&lt;/span&gt;, &lt;span style="color:#a31515;"&gt;&amp;quot; AND &amp;quot;&lt;/span&gt;));       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;mso-ansi-language:fr;" lang="FR"&gt;return&lt;/span&gt;&lt;span style="font-family:consolas;mso-ansi-language:fr;" lang="FR"&gt; source;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;mso-ansi-language:fr;" lang="FR"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;mso-ansi-language:fr;" lang="FR"&gt;&lt;/span&gt;    &lt;p&gt;&amp;#160; &lt;br /&gt;&lt;/p&gt; &lt;/p&gt; &lt;span style="font-family:consolas;mso-ansi-language:fr;" lang="FR"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;static&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MyQueryable&lt;/span&gt;&amp;lt;T&amp;gt; OrderBy&amp;lt;T, T2&amp;gt;(&lt;span style="color:blue;"&gt;this&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MyQueryable&lt;/span&gt;&amp;lt;T&amp;gt; source, &lt;span style="color:#2b91af;"&gt;Expression&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;Func&lt;/span&gt;&amp;lt;T, T2&amp;gt;&amp;gt; orderBy)     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;mso-ansi-language:fr;" lang="FR"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;{    &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;source.OrderByValue = orderBy.Body.ToString().Replace(&lt;span style="color:blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#a31515;"&gt;&amp;quot;{0}.&amp;quot;&lt;/span&gt;, orderBy.Parameters[&lt;span style="color:brown;"&gt;0&lt;/span&gt;].Name), &lt;span style="color:#a31515;"&gt;&amp;quot;it.&amp;quot;&lt;/span&gt;);     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; source;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;   &lt;p&gt;&amp;#160; &lt;br /&gt;&lt;/p&gt; &lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;static&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MyQueryable&lt;/span&gt;&amp;lt;T&amp;gt; Include&amp;lt;T&amp;gt;(&lt;span style="color:blue;"&gt;this&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MyQueryable&lt;/span&gt;&amp;lt;T&amp;gt; source, &lt;span style="color:blue;"&gt;string&lt;/span&gt; include)     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;source.IncludeValues.Add(include);     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; source;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;   &lt;p&gt;&amp;#160; &lt;br /&gt;&lt;/p&gt; &lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;static&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MyQueryable&lt;/span&gt;&amp;lt;T&amp;gt; Skip&amp;lt;T&amp;gt;(&lt;span style="color:blue;"&gt;this&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MyQueryable&lt;/span&gt;&amp;lt;T&amp;gt; source, &lt;span style="color:blue;"&gt;int&lt;/span&gt; number)     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;source.SkipValue = number;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; source;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;   &lt;p&gt;&amp;#160; &lt;br /&gt;&lt;/p&gt; &lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;static&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MyQueryable&lt;/span&gt;&amp;lt;T&amp;gt; Take&amp;lt;T&amp;gt;(&lt;span style="color:blue;"&gt;this&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MyQueryable&lt;/span&gt;&amp;lt;T&amp;gt; source, &lt;span style="color:blue;"&gt;int&lt;/span&gt; number)     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;source.TakeValue = number;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; source;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;   &lt;p&gt;&amp;#160; &lt;br /&gt;&lt;/p&gt; &lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;static&lt;/span&gt; T FirstOrDefault&amp;lt;T&amp;gt;(&lt;span style="color:blue;"&gt;this&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MyQueryable&lt;/span&gt;&amp;lt;T&amp;gt; source)     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;source.TakeValue = &lt;span style="color:brown;"&gt;1&lt;/span&gt;;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; source.AsEnumerable().FirstOrDefault();     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;   &lt;p&gt;&amp;#160; &lt;br /&gt;&lt;/p&gt; &lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;static&lt;/span&gt; T First&amp;lt;T&amp;gt;(&lt;span style="color:blue;"&gt;this&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MyQueryable&lt;/span&gt;&amp;lt;T&amp;gt; source)     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;source.TakeValue = &lt;span style="color:brown;"&gt;1&lt;/span&gt;;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; source.AsEnumerable().First();     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;   &lt;p&gt;&amp;#160; &lt;br /&gt;&lt;/p&gt; &lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;static&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MyQueryable&lt;/span&gt;&amp;lt;T&amp;gt; ToMyQueryable&amp;lt;T&amp;gt;(&lt;span style="color:blue;"&gt;this&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;T&amp;gt; source)     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; value = source &lt;span style="color:blue;"&gt;as&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MyQueryable&lt;/span&gt;&amp;lt;T&amp;gt;;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (value == &lt;span style="color:blue;"&gt;null&lt;/span&gt;)     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;value = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MyQueryable&lt;/span&gt;&amp;lt;T&amp;gt;(source);     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; value;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;}&lt;/span&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin-bottom:0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin-bottom:0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;"&gt;public&lt;/span&gt;&lt;span style="font-family:consolas;"&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MyQueryable&lt;/span&gt;&amp;lt;T&amp;gt; : &lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;T&amp;gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;{      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; MyQueryable()       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; MyQueryable(&lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;T&amp;gt; enumerable)       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Enumerable = enumerable;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;/span&gt;    &lt;p&gt;&amp;#160; &lt;br /&gt;&lt;/p&gt; &lt;/p&gt; &lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;T&amp;gt; Enumerable { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;set&lt;/span&gt;; }     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;   &lt;p&gt;&amp;#160; &lt;br /&gt;&lt;/p&gt; &lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IEnumerator&lt;/span&gt;&amp;lt;T&amp;gt; GetEnumerator()     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; Enumerable.GetEnumerator();     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;System.Collections.&lt;span style="color:#2b91af;"&gt;IEnumerator&lt;/span&gt; System.Collections.&lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;.GetEnumerator()     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; GetEnumerator();     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;   &lt;p&gt;&amp;#160; &lt;br /&gt;&lt;/p&gt; &lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;bool&lt;/span&gt; _allEntities = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;bool&lt;/span&gt; AllEntities     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;get&lt;/span&gt; { &lt;span style="color:blue;"&gt;return&lt;/span&gt; _allEntities; }     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;internal&lt;/span&gt; &lt;span style="color:blue;"&gt;set      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;_allEntities = &lt;span style="color:blue;"&gt;value&lt;/span&gt;;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (&lt;span style="color:blue;"&gt;value&lt;/span&gt;)     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;IncludeValues.Clear();     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;WhereValue = &lt;span style="color:blue;"&gt;null&lt;/span&gt;;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;OrderByValue = &lt;span style="color:blue;"&gt;null&lt;/span&gt;;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;SkipValue = &lt;span style="color:blue;"&gt;null&lt;/span&gt;;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;TakeValue = &lt;span style="color:blue;"&gt;null&lt;/span&gt;;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ObservableCollection&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;string&lt;/span&gt;&amp;gt; _includeValues;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ObservableCollection&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;string&lt;/span&gt;&amp;gt; IncludeValues     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;get      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (_includeValues == &lt;span style="color:blue;"&gt;null&lt;/span&gt;)     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;_includeValues = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ObservableCollection&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;string&lt;/span&gt;&amp;gt;();     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;_includeValues.CollectionChanged += (sender, e) =&amp;gt;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (e.Action == &lt;span style="color:#2b91af;"&gt;NotifyCollectionChangedAction&lt;/span&gt;.Add)     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;AllEntities = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;};     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; _includeValues;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; _whereValue;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; WhereValue     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;get&lt;/span&gt; { &lt;span style="color:blue;"&gt;return&lt;/span&gt; _whereValue; }     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;internal&lt;/span&gt; &lt;span style="color:blue;"&gt;set      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (&lt;span style="color:blue;"&gt;value&lt;/span&gt; != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;AllEntities = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;_whereValue = &lt;span style="color:blue;"&gt;value&lt;/span&gt;;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; _orderByValue;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; OrderByValue     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;get&lt;/span&gt; { &lt;span style="color:blue;"&gt;return&lt;/span&gt; _orderByValue; }     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;internal&lt;/span&gt; &lt;span style="color:blue;"&gt;set      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (&lt;span style="color:blue;"&gt;value&lt;/span&gt; != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;AllEntities = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;_orderByValue = &lt;span style="color:blue;"&gt;value&lt;/span&gt;;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;int&lt;/span&gt;? _skipValue;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;int&lt;/span&gt;? SkipValue&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;get&lt;/span&gt; { &lt;span style="color:blue;"&gt;return&lt;/span&gt; _skipValue; }     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;internal&lt;/span&gt; &lt;span style="color:blue;"&gt;set      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (&lt;span style="color:blue;"&gt;value&lt;/span&gt;.HasValue)     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;AllEntities = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;_skipValue = &lt;span style="color:blue;"&gt;value&lt;/span&gt;;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;int&lt;/span&gt;? _takeValue;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;int&lt;/span&gt;? TakeValue&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;get&lt;/span&gt; { &lt;span style="color:blue;"&gt;return&lt;/span&gt; _takeValue; }     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;internal&lt;/span&gt; &lt;span style="color:blue;"&gt;set      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (&lt;span style="color:blue;"&gt;value&lt;/span&gt;.HasValue)     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;AllEntities = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;_takeValue = &lt;span style="color:blue;"&gt;value&lt;/span&gt;;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;}    &lt;p&gt;&lt;/p&gt; &lt;/span&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Then, we will create our client project (a Test project in my sample). In this project, I add Entities project and Client.LINQ references. Client.LINQ is not mandatory. I can also duplicate my entities code but in order to have Self-Tracking, I can’t use the default generated code. Then, we will add the WCF service reference. To use my “sort of” provider LINQ, I need some MyQueryable of my entities. Here also, (I hope that you guess it), we can use a T4 template.&lt;/p&gt;  &lt;p style="line-height:normal;margin-bottom:0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;"&gt;public&lt;/span&gt;&lt;span style="font-family:consolas;"&gt; &lt;span style="color:blue;"&gt;partial&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext        &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;{&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;INorthwindService&lt;/span&gt; _service;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;     &lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; NorthwindClientContext(&lt;span style="color:#2b91af;"&gt;INorthwindService&lt;/span&gt; service)     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;_service = service;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&amp;#160;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MyQueryable&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;Customer&lt;/span&gt;&amp;gt; Customers     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;get      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; value = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MyQueryable&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;Customer&lt;/span&gt;&amp;gt;();     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;value.Enumerable = GetCustomers(value);     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; value;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;Customer&lt;/span&gt;&amp;gt; GetCustomers(&lt;span style="color:#2b91af;"&gt;MyQueryable&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;Customer&lt;/span&gt;&amp;gt; myQueryable)     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;Customer&lt;/span&gt;&amp;gt; value;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (myQueryable.AllEntities)     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;value = _service.GetAllCustomers();     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;else      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;value = _service.GetCustomers(myQueryable.IncludeValues.ToList(), myQueryable.WhereValue, myQueryable.OrderByValue, myQueryable.SkipValue, myQueryable.TakeValue);     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;foreach&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; entity &lt;span style="color:blue;"&gt;in&lt;/span&gt; value)     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;yield&lt;/span&gt; &lt;span style="color:blue;"&gt;return&lt;/span&gt; entity;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;    &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MyQueryable&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;Order&lt;/span&gt;&amp;gt; Orders     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;get      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; value = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MyQueryable&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;Order&lt;/span&gt;&amp;gt;();     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;value.Enumerable = GetOrders(value);     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; value;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;Order&lt;/span&gt;&amp;gt; GetOrders(&lt;span style="color:#2b91af;"&gt;MyQueryable&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;Order&lt;/span&gt;&amp;gt; myQueryable)     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;Order&lt;/span&gt;&amp;gt; value;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (myQueryable.AllEntities)     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;value = _service.GetAllOrders();     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;else      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;value = _service.GetOrders(myQueryable.IncludeValues.ToList(), myQueryable.WhereValue, myQueryable.OrderByValue, myQueryable.SkipValue, myQueryable.TakeValue);     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;foreach&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; entity &lt;span style="color:blue;"&gt;in&lt;/span&gt; value)     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;yield&lt;/span&gt; &lt;span style="color:blue;"&gt;return&lt;/span&gt; entity;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&amp;#160; &lt;br /&gt;    &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MyQueryable&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;OrderDetail&lt;/span&gt;&amp;gt; OrderDetails     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;get      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; value = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MyQueryable&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;OrderDetail&lt;/span&gt;&amp;gt;();     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;value.Enumerable = GetOrderDetails(value);     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; value;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;OrderDetail&lt;/span&gt;&amp;gt; GetOrderDetails(&lt;span style="color:#2b91af;"&gt;MyQueryable&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;OrderDetail&lt;/span&gt;&amp;gt; myQueryable)     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;OrderDetail&lt;/span&gt;&amp;gt; value;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (myQueryable.AllEntities)     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;value = _service.GetAllOrderDetails();     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;else      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;value = _service.GetOrderDetails(myQueryable.IncludeValues.ToList(), myQueryable.WhereValue, myQueryable.OrderByValue, myQueryable.SkipValue, myQueryable.TakeValue);     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;foreach&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; entity &lt;span style="color:blue;"&gt;in&lt;/span&gt; value)     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;yield&lt;/span&gt; &lt;span style="color:blue;"&gt;return&lt;/span&gt; entity;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;"&gt;}    &lt;p&gt;&lt;/p&gt; &lt;/span&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;The use of the yield return will postpone the execution and allow MyQueryable properties to be set when GetCustomers / GetOrders / GetOrderDetails methods are called.&lt;/p&gt;  &lt;p&gt;So the following code:&lt;/p&gt;  &lt;p style="line-height:normal;margin-bottom:0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;mso-bidi-font-size:9.5pt;"&gt;var&lt;/span&gt;&lt;span style="font-family:consolas;mso-bidi-font-size:9.5pt;"&gt; order = (&lt;span style="color:blue;"&gt;from&lt;/span&gt; o &lt;span style="color:blue;"&gt;in&lt;/span&gt; &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;(service).Orders.Include(&lt;span style="color:#a31515;"&gt;&amp;quot;Customer&amp;quot;&lt;/span&gt;).Include(&lt;span style="color:#a31515;"&gt;&amp;quot;OrderDetails&amp;quot;&lt;/span&gt;)       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;mso-bidi-font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;where&lt;/span&gt; o.ShipCity == &lt;span style="color:#a31515;"&gt;&amp;quot;PARIS&amp;quot;        &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;mso-bidi-font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;orderby&lt;/span&gt; o.OrderDate       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:consolas;mso-bidi-font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;select&lt;/span&gt; o).Skip(&lt;span style="color:brown;"&gt;2&lt;/span&gt;).First(); &lt;/span&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;will call this method &lt;/p&gt;  &lt;p&gt;_service.GetOrders(myQueryable.IncludeValues.ToList(), myQueryable.WhereValue, myQueryable.OrderByValue, myQueryable.SkipValue, myQueryable.TakeValue)&lt;/p&gt;  &lt;p&gt;with these parameters:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/matthieu.metablogapi/0447.image_5F00_7A1173CE.png"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/matthieu.metablogapi/0844.image_5F00_thumb_5F00_4C43AB09.png" width="414" height="190" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;wich will generate the following SQL query:&lt;/p&gt;  &lt;p style="line-height:normal;margin-bottom:0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;"&gt;SELECT&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[OrderID] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [OrderID]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[CustomerID] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [CustomerID]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[EmployeeID] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [EmployeeID]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[OrderDate] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [OrderDate]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[RequiredDate] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [RequiredDate]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShippedDate] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShippedDate]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipVia] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipVia]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Freight] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Freight]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipName] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipName]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipAddress] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipAddress]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipCity] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipCity]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipRegion] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipRegion]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipPostalCode] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipPostalCode]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipCountry] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipCountry]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[CustomerID1] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [CustomerID1]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[CompanyName] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [CompanyName]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ContactName] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ContactName]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ContactTitle] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ContactTitle]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Address] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Address]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[City] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [City]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Region] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Region]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[PostalCode] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [PostalCode]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Country] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Country]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Phone] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Phone]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Fax] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Fax]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[C1] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [C1]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[OrderID1] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [OrderID1]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ProductID] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ProductID]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[UnitPrice] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [UnitPrice]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Quantity] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Quantity]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Discount] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Discount]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;"&gt;FROM &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;mso-no-proof:yes;"&gt;(&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt; &lt;span style="color:blue;"&gt;SELECT&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Limit1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[OrderID] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [OrderID]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Limit1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[CustomerID1] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [CustomerID]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Limit1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[EmployeeID] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [EmployeeID]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Limit1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[OrderDate] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [OrderDate]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Limit1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[RequiredDate] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [RequiredDate]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Limit1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShippedDate] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShippedDate]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Limit1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipVia] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipVia]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Limit1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Freight] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Freight]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Limit1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipName] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipName]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Limit1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipAddress] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipAddress]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Limit1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipCity] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipCity]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Limit1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipRegion] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipRegion]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Limit1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipPostalCode] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipPostalCode]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Limit1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipCountry] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipCountry]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Limit1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[CustomerID2] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [CustomerID1]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Limit1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[CompanyName] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [CompanyName]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Limit1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ContactName] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ContactName]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Limit1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ContactTitle] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ContactTitle]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Limit1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Address] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Address]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Limit1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[City] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [City]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Limit1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Region] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Region]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Limit1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[PostalCode] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [PostalCode]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Limit1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Country] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Country]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Limit1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Phone] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Phone]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Limit1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Fax] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Fax]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Extent3]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[OrderID] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [OrderID1]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Extent3]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ProductID] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ProductID]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Extent3]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[UnitPrice] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [UnitPrice]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Extent3]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Quantity] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Quantity]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Extent3]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Discount] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Discount]&lt;span style="color:gray;"&gt;,&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;CASE&lt;/span&gt; &lt;span style="color:blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;[Extent3]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[OrderID] &lt;span style="color:gray;"&gt;IS&lt;/span&gt; &lt;span style="color:gray;"&gt;NULL)&lt;/span&gt; &lt;span style="color:blue;"&gt;THEN&lt;/span&gt; &lt;span style="color:fuchsia;"&gt;CAST&lt;/span&gt;&lt;span style="color:gray;"&gt;(NULL&lt;/span&gt; &lt;span style="color:blue;"&gt;AS&lt;/span&gt; &lt;span style="color:blue;"&gt;int&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:blue;"&gt;ELSE&lt;/span&gt; 1 &lt;span style="color:blue;"&gt;END&lt;/span&gt; &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [C1]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;FROM&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT&lt;/span&gt; &lt;span style="color:blue;"&gt;TOP &lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;1&lt;span style="color:gray;"&gt;)&lt;/span&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[OrderID]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[CustomerID1]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[EmployeeID]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[OrderDate]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[RequiredDate]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShippedDate]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipVia]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Freight]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipName]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipAddress]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipCity]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipRegion]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipPostalCode]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipCountry]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[CustomerID2]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[CompanyName]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ContactName]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ContactTitle]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Address]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[City]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Region]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[PostalCode]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Country]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Phone]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Fax]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;FROM &lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt; &lt;span style="color:blue;"&gt;SELECT&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[OrderID] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [OrderID]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[CustomerID] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [CustomerID1]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[EmployeeID] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [EmployeeID]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[OrderDate] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [OrderDate]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[RequiredDate] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [RequiredDate]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShippedDate] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShippedDate]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipVia] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipVia]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Freight] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Freight]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipName] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipName]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipAddress] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipAddress]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipCity] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipCity]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipRegion] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipRegion]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipPostalCode] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipPostalCode]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipCountry] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipCountry]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent2]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[CustomerID] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [CustomerID2]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent2]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[CompanyName] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [CompanyName]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent2]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ContactName] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ContactName]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent2]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ContactTitle] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ContactTitle]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent2]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Address] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Address]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent2]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[City] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [City]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent2]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Region] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Region]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent2]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[PostalCode] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [PostalCode]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent2]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Country] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Country]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent2]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Phone] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Phone]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent2]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Fax] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Fax]&lt;span style="color:gray;"&gt;,&lt;/span&gt; &lt;span style="color:fuchsia;"&gt;row_number&lt;/span&gt;&lt;span style="color:gray;"&gt;()&lt;/span&gt; &lt;span style="color:blue;"&gt;OVER &lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:blue;"&gt;ORDER&lt;/span&gt; &lt;span style="color:blue;"&gt;BY&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[OrderDate] &lt;span style="color:blue;"&gt;ASC&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [row_number]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;FROM&lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160; &lt;/span&gt;[dbo]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Orders] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Extent1]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:gray;"&gt;LEFT&lt;/span&gt; &lt;span style="color:gray;"&gt;OUTER&lt;/span&gt; &lt;span style="color:gray;"&gt;JOIN&lt;/span&gt; [dbo]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Customers] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Extent2] &lt;span style="color:blue;"&gt;ON&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[CustomerID] &lt;span style="color:gray;"&gt;=&lt;/span&gt; [Extent2]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[CustomerID]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;WHERE&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipCity] &lt;span style="color:gray;"&gt;=&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;#39;PARIS&amp;#39;        &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Filter1]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;WHERE&lt;/span&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[row_number] &lt;span style="color:gray;"&gt;&amp;gt;&lt;/span&gt; 2       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;ORDER&lt;/span&gt; &lt;span style="color:blue;"&gt;BY&lt;/span&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[OrderDate] &lt;span style="color:blue;"&gt;ASC&lt;/span&gt; &lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Limit1]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:gray;"&gt;LEFT&lt;/span&gt; &lt;span style="color:gray;"&gt;OUTER&lt;/span&gt; &lt;span style="color:gray;"&gt;JOIN&lt;/span&gt; [dbo]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Order Details] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Extent3] &lt;span style="color:blue;"&gt;ON&lt;/span&gt; [Limit1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[OrderID] &lt;span style="color:gray;"&gt;=&lt;/span&gt; [Extent3]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[OrderID]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;mso-no-proof:yes;"&gt;)&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Project1] &lt;/span&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt; &lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-ansi-language:en-us;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-fareast-language:en-us;mso-bidi-language:ar-sa;mso-no-proof:yes;"&gt;ORDER&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-fareast-language:en-us;mso-bidi-language:ar-sa;mso-no-proof:yes;"&gt; &lt;span style="color:blue;"&gt;BY&lt;/span&gt; [Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[OrderDate] &lt;span style="color:blue;"&gt;ASC&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[OrderID] &lt;span style="color:blue;"&gt;ASC&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[CustomerID1] &lt;span style="color:blue;"&gt;ASC&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Project1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[C1] &lt;span style="color:blue;"&gt;ASC&lt;/span&gt;&lt;/span&gt;   &lt;p&gt;If we comment the Include, the SQL query is more readable &lt;img src="http://msmvps.com/emoticons/emotion-1.gif" alt="Smile" /&gt; :&lt;/p&gt;  &lt;p style="line-height:normal;margin-bottom:0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;"&gt;SELECT&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt; &lt;span style="color:blue;"&gt;TOP &lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;1&lt;span style="color:gray;"&gt;)&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[OrderID] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [OrderID]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[CustomerID] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [CustomerID]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[EmployeeID] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [EmployeeID]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[OrderDate] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [OrderDate]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[RequiredDate] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [RequiredDate]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShippedDate] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShippedDate]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipVia] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipVia]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Freight] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Freight]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipName] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipName]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipAddress] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipAddress]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipCity] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipCity]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipRegion] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipRegion]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipPostalCode] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipPostalCode]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipCountry] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipCountry]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;"&gt;FROM &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;mso-no-proof:yes;"&gt;(&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt; &lt;span style="color:blue;"&gt;SELECT&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[OrderID] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [OrderID]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[CustomerID] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [CustomerID]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[EmployeeID] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [EmployeeID]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[OrderDate] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [OrderDate]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[RequiredDate] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [RequiredDate]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShippedDate] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShippedDate]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipVia] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipVia]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Freight] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Freight]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipName] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipName]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipAddress] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipAddress]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipCity] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipCity]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipRegion] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipRegion]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipPostalCode] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipPostalCode]&lt;span style="color:gray;"&gt;,&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipCountry] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipCountry]&lt;span style="color:gray;"&gt;,&lt;/span&gt; &lt;span style="color:fuchsia;"&gt;row_number&lt;/span&gt;&lt;span style="color:gray;"&gt;()&lt;/span&gt; &lt;span style="color:blue;"&gt;OVER &lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:blue;"&gt;ORDER&lt;/span&gt; &lt;span style="color:blue;"&gt;BY&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[OrderDate] &lt;span style="color:blue;"&gt;ASC&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [row_number]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;FROM&lt;/span&gt; [dbo]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Orders] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Extent1]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;WHERE&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipCity] &lt;span style="color:gray;"&gt;=&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;#39;PARIS&amp;#39;        &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;mso-no-proof:yes;"&gt;)&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Filter1]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;"&gt;WHERE&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[row_number] &lt;span style="color:gray;"&gt;&amp;gt;&lt;/span&gt; 2 &lt;/span&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt; &lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-ansi-language:en-us;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-fareast-language:en-us;mso-bidi-language:ar-sa;mso-no-proof:yes;"&gt;ORDER&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-ansi-language:en-us;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-fareast-language:en-us;mso-bidi-language:ar-sa;mso-no-proof:yes;"&gt; &lt;span style="color:blue;"&gt;BY&lt;/span&gt; [Filter1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[OrderDate] &lt;span style="color:blue;"&gt;ASC&lt;/span&gt;&lt;/span&gt;   &lt;p&gt;We can find our WHERE City = ‘Paris’, our WHERE row_number &amp;gt; 2 (for the Skip), out ORDER BY OrderDate and our TOP&amp;#160; 1 (for the First).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Take care, this “sort of” provider LINQ is a POC. It is not finished. For example, it doesn’t support variables or the new operator (for date for example). &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;What happens if we integrate methods non supported by ClientLINQ?&lt;/p&gt;  &lt;p&gt;It’s ok! &lt;img src="http://msmvps.com/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;/p&gt;  &lt;p&gt;LINQ To Object will be used.&lt;/p&gt;  &lt;p&gt;For example, the following LINQ query:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="line-height:115%;font-family:consolas;color:blue;mso-ansi-language:en;mso-bidi-font-size:9.5pt;" lang="EN"&gt;var&lt;/span&gt;&lt;span style="line-height:115%;font-family:consolas;mso-ansi-language:en;mso-bidi-font-size:9.5pt;" lang="EN"&gt; customerInfos = (&lt;span style="color:blue;"&gt;from&lt;/span&gt; o &lt;span style="color:blue;"&gt;in&lt;/span&gt; &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindClientContext&lt;/span&gt;(service).Orders.Include(&lt;span style="color:#a31515;"&gt;&amp;quot;Customer&amp;quot;&lt;/span&gt;)       &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;where&lt;/span&gt; o.ShipCity == &lt;span style="color:#a31515;"&gt;&amp;quot;PARIS&amp;quot;        &lt;br /&gt;&lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;orderby&lt;/span&gt; o.OrderDate       &lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;group&lt;/span&gt; o &lt;span style="color:blue;"&gt;by&lt;/span&gt; o.Customer &lt;span style="color:blue;"&gt;into&lt;/span&gt; g&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:consolas;mso-bidi-font-size:9.5pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;select&lt;/span&gt; &lt;span style="color:blue;"&gt;new&lt;/span&gt; { g.Key.CompanyName, g.Key.ContactName, OrdersCount = g.Count() }).ToList();&lt;/span&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;will call this method &lt;/p&gt;  &lt;p&gt;_service.GetOrders(myQueryable.IncludeValues.ToList(), myQueryable.WhereValue, myQueryable.OrderByValue, myQueryable.SkipValue, myQueryable.TakeValue)&lt;/p&gt;  &lt;p&gt;with these parameters:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/matthieu.metablogapi/2117.image_5F00_02D1564E.png"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/matthieu.metablogapi/3107.image_5F00_thumb_5F00_13D58431.png" width="412" height="164" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;which will generate the following SQL query:&lt;/p&gt;  &lt;p style="line-height:normal;margin-bottom:0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;"&gt;SELECT&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[OrderID] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [OrderID]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[CustomerID] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [CustomerID]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[EmployeeID] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [EmployeeID]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[OrderDate] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [OrderDate]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[RequiredDate] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [RequiredDate]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShippedDate] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShippedDate]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipVia] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipVia]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Freight] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Freight]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipName] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipName]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipAddress] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipAddress]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipCity] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipCity]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipRegion] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipRegion]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipPostalCode] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipPostalCode]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipCountry] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ShipCountry]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Extent2]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[CustomerID] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [CustomerID1]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Extent2]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[CompanyName] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [CompanyName]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Extent2]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ContactName] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ContactName]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Extent2]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ContactTitle] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [ContactTitle]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Extent2]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Address] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Address]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Extent2]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[City] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [City]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Extent2]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Region] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Region]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Extent2]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[PostalCode] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [PostalCode]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Extent2]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Country] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Country]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Extent2]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Phone] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Phone]&lt;span style="color:gray;"&gt;,&lt;/span&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;[Extent2]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Fax] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Fax]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;"&gt;FROM&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160; &lt;/span&gt;[dbo]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Orders] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Extent1]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;mso-no-proof:yes;"&gt;LEFT&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt; &lt;span style="color:gray;"&gt;OUTER&lt;/span&gt; &lt;span style="color:gray;"&gt;JOIN&lt;/span&gt; [dbo]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Customers] &lt;span style="color:blue;"&gt;AS&lt;/span&gt; [Extent2] &lt;span style="color:blue;"&gt;ON&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[CustomerID] &lt;span style="color:gray;"&gt;=&lt;/span&gt; [Extent2]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[CustomerID]       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;"&gt;WHERE&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShipCity] &lt;span style="color:gray;"&gt;=&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;#39;PARIS&amp;#39;        &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;"&gt;ORDER&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-no-proof:yes;"&gt; &lt;span style="color:blue;"&gt;BY&lt;/span&gt; [Extent1]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[OrderDate] &lt;span style="color:blue;"&gt;ASC&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;"&gt; &lt;/span&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;As you can see, no trace of group by. However, the result integrates it (with LINQ To Object).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;In this post, I wanted to present my “sort of&amp;#39;” LINQ provider but the real goal of this post is to persuade you (and I’m sure you are &lt;img src="http://msmvps.com/emoticons/emotion-1.gif" alt="Smile" /&gt;) of the EF / T4 couple productivity gain. Indeed, &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;your templates are reusable in different projects. You just have to update the edmx path and to let Visual Studio regenerate T4 templates code. &lt;/li&gt;    &lt;li&gt;If you haven&amp;#39;t already written the template you need, the dev time is not proportional to the number of entities which implies very quickly a productivity gain compare to a “classic” dev. &lt;/li&gt; &lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1742036" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/matthieu/archive/tags/.Net/default.aspx">.Net</category><category domain="http://msmvps.com/blogs/matthieu/archive/tags/Entity+Framework+_2800_EF_2900_/default.aspx">Entity Framework (EF)</category><category domain="http://msmvps.com/blogs/matthieu/archive/tags/Entity+Data+Model+_2800_EDM_2900_/default.aspx">Entity Data Model (EDM)</category><category domain="http://msmvps.com/blogs/matthieu/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://msmvps.com/blogs/matthieu/archive/tags/T4/default.aspx">T4</category><category domain="http://msmvps.com/blogs/matthieu/archive/tags/TDD/default.aspx">TDD</category><category domain="http://msmvps.com/blogs/matthieu/archive/tags/LINQ/default.aspx">LINQ</category></item><item><title>ADO.NET Data Services Client context</title><link>http://msmvps.com/blogs/matthieu/archive/2009/11/04/ado-net-data-services-client.aspx</link><pubDate>Wed, 04 Nov 2009 23:40:24 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1737702</guid><dc:creator>Matthieu MEZIL</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/matthieu/rsscomments.aspx?PostID=1737702</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/matthieu/commentapi.aspx?PostID=1737702</wfw:comment><comments>http://msmvps.com/blogs/matthieu/archive/2009/11/04/ado-net-data-services-client.aspx#comments</comments><description>&lt;p&gt;One of the great points with EF is the eco-system around it. Even if it can be used without EF, I think that ADO .NET Data Services is one of the technologies in this eco-system. Indeed, using ADO.NET Data Services with EF implies almost no code to write some LINQ queries in the client tier or to save the changes. &lt;/p&gt;  &lt;p&gt;However, when we use the generated proxy in the client tier there are some bad points:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;For example with Northwind, if we add an orderDetail to the order.OrderDetails collection, the orderDetail.Order is still null. In reverse, if we set the orderDetail.Order, the orderDetail isn’t added to the order.OrderDetails collection. &lt;/li&gt;    &lt;li&gt;Moreover, if we load the orders and then the orderDetails, the OrderDetails collection of the orders is empty and the orderDetails order is null. However, because OrderID is a part of the orderDetails key, we should be able to get automatically the relation as EF do.      &lt;br /&gt;//To have this relation with ADO.NET Data Services, we have to use the Expand method in the query or to use the LoadProperty method.       &lt;br /&gt;With EF4, we can have FK in the model (with EF v1, we have only the FKs which are included in the PK) which is really great because, in theory, it’s now possible to reform the relations. &lt;/li&gt;    &lt;li&gt;Another point: if you want to add an order with some (new) orderDetails, you need to call the Add for the order, then the Add for all orderDetails (the MS client context ignore the navigation properties) and then you also need to call the methods SetLink and AddLink (because the order key is an Identity). So in fact this is the code you have to write: &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:en-us;" lang="EN-US"&gt;context.AddToOrders(o); &lt;/span&gt;    &lt;br /&gt;&lt;span style="font-family:consolas;color:blue;font-size:9.5pt;mso-ansi-language:en-us;" lang="EN-US"&gt;foreach&lt;/span&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:en-us;" lang="EN-US"&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; od &lt;span style="color:blue;"&gt;in&lt;/span&gt; o.OrderDetails) &lt;/span&gt;    &lt;br /&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:en-us;" lang="EN-US"&gt;{ &lt;/span&gt;    &lt;br /&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.AddToOrderDetails(od); &lt;/span&gt;    &lt;br /&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.AddLink(o, &lt;span style="color:#a31515;"&gt;&amp;quot;OrderDetails&amp;quot;&lt;/span&gt;, od); &lt;/span&gt;    &lt;br /&gt;&lt;span style="font-family:consolas;font-size:9.5pt;mso-ansi-language:en-us;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context.SetLink(od, &lt;span style="color:#a31515;"&gt;&amp;quot;Order&amp;quot;&lt;/span&gt;, o); &lt;/span&gt;    &lt;br /&gt;&lt;span style="line-height:115%;font-family:consolas;font-size:9.5pt;mso-ansi-language:fr;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;}&lt;/span&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;One more point, the context doesn’t track changes alone. You have to call yourself the UpdateObject method.&lt;/li&gt;    &lt;li&gt;Finally, if we add an orderDetail to the context and only then the associated order, when we call the SaveChanges, we have an exception because the context doesn’t change the Add order &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;So my idea was to code another client tier context. But of course, I wanted a generic solution. It means that I wanted to code something usable with every model. To realize it, I used a T4 template based on the edmx (in the server tier). This implies two things:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;We need to use EF in the server tier &lt;/li&gt;    &lt;li&gt;We need to have the server tier edmx when we code the client tier &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;My template fixes all the above issues.&lt;/p&gt;  &lt;p&gt;You can download it &lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/matthieu.Demo/2068.ADONETDataServicesClientTemplate.zip" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;You also can download all the solution (with unit tests) &lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/matthieu.Demo/3630.TestADONETDataServicesClientContext.zip" target="_blank"&gt;here&lt;/a&gt; and the DB creation script &lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/matthieu.Demo/2061.MyNorthwindEF-script.zip" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;//I admit that some parts of the code aren’t great but ADO.NET Data Services is an extremely “closed” technology so it isn’t so easy and I would probably have some better ideas if I didn’t write it so late in the night &lt;img src="http://msmvps.com/emoticons/emotion-5.gif" alt="Wink" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1737702" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/matthieu/archive/tags/.Net/default.aspx">.Net</category><category domain="http://msmvps.com/blogs/matthieu/archive/tags/Entity+Framework+_2800_EF_2900_/default.aspx">Entity Framework (EF)</category><category domain="http://msmvps.com/blogs/matthieu/archive/tags/Entity+Data+Model+_2800_EDM_2900_/default.aspx">Entity Data Model (EDM)</category><category domain="http://msmvps.com/blogs/matthieu/archive/tags/ADO.NET+Data+Services/default.aspx">ADO.NET Data Services</category><category domain="http://msmvps.com/blogs/matthieu/archive/tags/T4/default.aspx">T4</category></item><item><title>Generate a WCF service from an edmx with T4 v2</title><link>http://msmvps.com/blogs/matthieu/archive/2009/10/26/generate-a-wcf-service-from-an-edmx-with-t4-v2.aspx</link><pubDate>Mon, 26 Oct 2009 23:13:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1735482</guid><dc:creator>Matthieu MEZIL</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/matthieu/rsscomments.aspx?PostID=1735482</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/matthieu/commentapi.aspx?PostID=1735482</wfw:comment><comments>http://msmvps.com/blogs/matthieu/archive/2009/10/26/generate-a-wcf-service-from-an-edmx-with-t4-v2.aspx#comments</comments><description>&lt;p&gt;&lt;a target="_blank" href="http://msmvps.com/blogs/matthieu/archive/2009/10/20/entity-framework-the-productivity-way.aspx"&gt;I recently published a T4 template to generate a WCF service&lt;/a&gt;. &lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/matthieu.Demo/5226.WCFService-v2.zip"&gt;I updated it to be able to load its relationships from an entity&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;When the template is written (what I&amp;rsquo;ve already done), it generates the WCF service for us (you just have to set the end point in the config file). &lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://msmvps.com/blogs/matthieu/archive/2009/10/20/entity-framework-the-productivity-way.aspx"&gt;As I explained in my previous post&lt;/a&gt;, the great point with it is the fact that the code writing time is not dependant of the number of entities on the model. Moreover,&amp;nbsp; the template is generally (it&amp;rsquo;s the case here) not dependant of the model so we can use it with another model and more generally with another project.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1735482" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/matthieu/archive/tags/.Net/default.aspx">.Net</category><category domain="http://msmvps.com/blogs/matthieu/archive/tags/Entity+Framework+_2800_EF_2900_/default.aspx">Entity Framework (EF)</category><category domain="http://msmvps.com/blogs/matthieu/archive/tags/Entity+Data+Model+_2800_EDM_2900_/default.aspx">Entity Data Model (EDM)</category><category domain="http://msmvps.com/blogs/matthieu/archive/tags/T4/default.aspx">T4</category></item><item><title>Entity Framework: the productivity way</title><link>http://msmvps.com/blogs/matthieu/archive/2009/10/20/entity-framework-the-productivity-way.aspx</link><pubDate>Tue, 20 Oct 2009 13:39:12 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1733662</guid><dc:creator>Matthieu MEZIL</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/matthieu/rsscomments.aspx?PostID=1733662</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/matthieu/commentapi.aspx?PostID=1733662</wfw:comment><comments>http://msmvps.com/blogs/matthieu/archive/2009/10/20/entity-framework-the-productivity-way.aspx#comments</comments><description>&lt;p&gt;One of the best points with Entity Framework is the developer productivity gain. If you associate EF with the T4 template code generation, this gain explodes. Imagine that we want a WCF service which exposes some data. For each entity type, you probably want a Get method which returns the entities, perhaps another Get which takes the entity id as parameter and which returns the entity with its relationships, a Add, a Update, perhaps a Delete. &lt;/p&gt;  &lt;p&gt;EF allows an important productivity gain for the entities development and their use. However, in our case, to code to write is almost the same for each entity type. It means that it’s time to use the T4 template.&lt;/p&gt;  &lt;p&gt;In all T4 samples I studied, this great template is used only for the entity generation. We will try here to go ahead.&lt;/p&gt;  &lt;p&gt;WIth the T4 template, you will write your meta-code which will generate the WCF service! And what is very cool is the fact that you will be able to use your template in another project. I try to compare here the productivity between a code using ADO .NET 2.0 and a code using the Entity Framework. My first observation is: I forgot that it’s so boring and so long to use the classic ADO. &lt;/p&gt;  &lt;p&gt;With EF and T4, the only thing I don’t generate is the relation list to load per entity type (I could use a fixed depth with T4 but I preferred to have a business logic for the relationships loading). With ADO .NET 2.0, I have to write all the code!&lt;/p&gt;  &lt;p&gt;Moreover, “classic” ADO implies a string query and we can imagine to have some writing mistakes in our SQL queries and so it implies to write some unit tests which take time.&lt;/p&gt;  &lt;p&gt;One of the first point we can see is the code reading. It’s so much easier with EF! &lt;/p&gt;  &lt;p&gt;For the GetOrder(orderId) method, my ADO 2.0 code is the following: &lt;/p&gt;  &lt;div style="font-family:courier new;background:white;color:black;font-size:10pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;const&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; SELECT_ORDERS = &lt;span style="color:#a31515;"&gt;&amp;quot;OrderID, CustomerID, EmployeeID, OrderDate, RequiredDate, ShippedDate, ShipVia, Freight, ShipName, ShipAddress, ShipCity, ShipRegion, ShipPostalCode, ShipCountry FROM ORDERS&amp;quot;&lt;/span&gt;;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;const&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; SELECT_ORDERDETAILS = &lt;span style="color:#a31515;"&gt;&amp;quot;OrderID, ProductID, UnitPrice, Quantity, Discount FROM [Order Details]&amp;quot;&lt;/span&gt;;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;const&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; SELECT_CUSTOMERS = &lt;span style="color:#a31515;"&gt;&amp;quot;C.CustomerID, CompanyName, ContactName, ContactTitle, [Address], City, Region, PostalCode, Country, Phone, Fax, Since, Points, CardNumber, CAST((CASE M.CustomerID when NULL then 0 else 1 END) AS bit) AS IsMember FROM Customers AS C LEFT OUTER JOIN Members AS M ON C.CustomerID = M.CustomerID&amp;quot;&lt;/span&gt;;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Order&lt;/span&gt; GetOrder(&lt;span style="color:blue;"&gt;int&lt;/span&gt; orderID)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;{&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; ReadEntity&amp;lt;&lt;span style="color:#2b91af;"&gt;Order&lt;/span&gt;&amp;gt;(&lt;span style="color:blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#a31515;"&gt;&amp;quot;SELECT TOP 1 {0} WHERE OrderID = @OrderID; \n SELECT {1} WHERE OrderID = @OrderID;&amp;quot;&lt;/span&gt;, SELECT_ORDERS, SELECT_ORDERDETAILS), &lt;span style="color:blue;"&gt;new&lt;/span&gt;[] { &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;SqlParameter&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;OrderID&amp;quot;&lt;/span&gt;, orderID) }, reader =&amp;gt; GetOrder(reader), (o, reader, connection) =&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; o.OrderDetails = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;OrderDetail&lt;/span&gt;&amp;gt;();&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; reader.NextResult();&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;while&lt;/span&gt; (reader.Read())&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;var&lt;/span&gt; orderDetail = GetOrderDetail(reader);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; orderDetail.Order = o;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; o.OrderDetails.Add(orderDetail);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (o.CustomerID != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; o.Customer = ReadEntity&amp;lt;&lt;span style="color:#2b91af;"&gt;Customer&lt;/span&gt;&amp;gt;(&lt;span style="color:blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#a31515;"&gt;&amp;quot;SELECT TOP 1 {0} WHERE C.CustomerID = @CustomerID&amp;quot;&lt;/span&gt;, SELECT_CUSTOMERS), &lt;span style="color:blue;"&gt;new&lt;/span&gt;[] { &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;SqlParameter&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;CustomerID&amp;quot;&lt;/span&gt;, o.CustomerID) }, subReader =&amp;gt; GetCustomer(subReader), connection);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;var&lt;/span&gt; pq = o.OrderDetails.Select(od =&amp;gt; od.ProductID.ToString());&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (pq.Any())&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;var&lt;/span&gt; products = ReadEntities&amp;lt;&lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt;&amp;gt;(&lt;span style="color:blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#a31515;"&gt;&amp;quot;SELECT {0} WHERE ProductID IN ({1})&amp;quot;&lt;/span&gt;, SELECT_PRODUCTS, pq.Skip(1).Any() ? pq.Aggregate((p1, p2) =&amp;gt; p1.Contains(&lt;span style="color:blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#a31515;"&gt;&amp;quot; {0} &amp;quot;&lt;/span&gt;, p2)) ? p1 : &lt;span style="color:blue;"&gt;string&lt;/span&gt;.Concat(&lt;span style="color:#a31515;"&gt;&amp;quot; &amp;quot;&lt;/span&gt;, p1, &lt;span style="color:#a31515;"&gt;&amp;quot; , &amp;quot;&lt;/span&gt;, p2)) : pq.First()), subReader =&amp;gt; GetProduct(subReader), connection);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;foreach&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; p &lt;span style="color:blue;"&gt;in&lt;/span&gt; products)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; p.OrderDetails = o.OrderDetails.Where(od =&amp;gt; od.ProductID == p.ProductID).Select(od =&amp;gt; { od.Product = p; &lt;span style="color:blue;"&gt;return&lt;/span&gt; od; }).ToList();&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; });&lt;/p&gt;    &lt;p style="margin:0px;"&gt;}&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; T ReadEntity&amp;lt;T&amp;gt;(&lt;span style="color:blue;"&gt;string&lt;/span&gt; commandText, &lt;span style="color:#2b91af;"&gt;SqlParameter&lt;/span&gt;[] parameters, &lt;span style="color:#2b91af;"&gt;Func&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;SqlDataReader&lt;/span&gt;, T&amp;gt; getEntityFromReader, &lt;span style="color:#2b91af;"&gt;Action&lt;/span&gt;&amp;lt;T, &lt;span style="color:#2b91af;"&gt;SqlDataReader&lt;/span&gt;, &lt;span style="color:#2b91af;"&gt;SqlConnection&lt;/span&gt;&amp;gt; moreAction = &lt;span style="color:blue;"&gt;null&lt;/span&gt;) &lt;span style="color:blue;"&gt;where&lt;/span&gt; T : &lt;span style="color:blue;"&gt;class&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;{&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;SqlConnection&lt;/span&gt; connection = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;SqlConnection&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;ConfigurationManager&lt;/span&gt;.ConnectionStrings[&lt;span style="color:#a31515;"&gt;&amp;quot;NorthwindEntities&amp;quot;&lt;/span&gt;].ToString());&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; connection.Open();&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;try&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; ReadEntity(commandText, parameters, getEntityFromReader, connection, moreAction);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;finally&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; connection.Close();&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;}&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; T ReadEntity&amp;lt;T&amp;gt;(&lt;span style="color:blue;"&gt;string&lt;/span&gt; commandText, &lt;span style="color:#2b91af;"&gt;SqlParameter&lt;/span&gt;[] parameters, &lt;span style="color:#2b91af;"&gt;Func&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;SqlDataReader&lt;/span&gt;, T&amp;gt; getEntityFromReader, &lt;span style="color:#2b91af;"&gt;SqlConnection&lt;/span&gt; connection, &lt;span style="color:#2b91af;"&gt;Action&lt;/span&gt;&amp;lt;T, &lt;span style="color:#2b91af;"&gt;SqlDataReader&lt;/span&gt;, &lt;span style="color:#2b91af;"&gt;SqlConnection&lt;/span&gt;&amp;gt; moreAction = &lt;span style="color:blue;"&gt;null&lt;/span&gt;) &lt;span style="color:blue;"&gt;where&lt;/span&gt; T : &lt;span style="color:blue;"&gt;class&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;{&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;SqlCommand&lt;/span&gt; command = connection.CreateCommand();&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; command.CommandText = commandText;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; command.Parameters.AddRange(parameters);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;SqlDataReader&lt;/span&gt; reader = command.ExecuteReader();&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;try&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (reader.Read())&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;var&lt;/span&gt; value = getEntityFromReader(reader);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (moreAction != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; moreAction(value, reader, connection);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; value;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;null&lt;/span&gt;;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;finally&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; reader.Close();&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;}&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;T&amp;gt; ReadEntities&amp;lt;T&amp;gt;(&lt;span style="color:blue;"&gt;string&lt;/span&gt; commandText, &lt;span style="color:#2b91af;"&gt;Func&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;SqlDataReader&lt;/span&gt;, T&amp;gt; getEntityFromReader, &lt;span style="color:#2b91af;"&gt;SqlConnection&lt;/span&gt; connection) &lt;span style="color:blue;"&gt;where&lt;/span&gt; T : &lt;span style="color:blue;"&gt;class&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;{&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;var&lt;/span&gt; value = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;T&amp;gt;();&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;SqlCommand&lt;/span&gt; command = connection.CreateCommand();&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; command.CommandText = commandText;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;SqlDataReader&lt;/span&gt; reader = command.ExecuteReader();&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;try&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;while&lt;/span&gt; (reader.Read())&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; value.Add(getEntityFromReader(reader));&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; value;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;finally&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; reader.Close();&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;}&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Order&lt;/span&gt; GetOrder(&lt;span style="color:#2b91af;"&gt;SqlDataReader&lt;/span&gt; reader)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;{&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Order&lt;/span&gt; { OrderID = reader.GetInt32(0), CustomerID = reader.IsDBNull(1) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : reader.GetString(1), EmployeeID = reader.IsDBNull(2) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : (&lt;span style="color:blue;"&gt;int&lt;/span&gt;?)reader.GetInt32(2), OrderDate = reader.IsDBNull(3) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : (&lt;span style="color:#2b91af;"&gt;DateTime&lt;/span&gt;?)reader.GetDateTime(3), RequiredDate = reader.IsDBNull(4) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : (&lt;span style="color:#2b91af;"&gt;DateTime&lt;/span&gt;?)reader.GetDateTime(4), ShippedDate = reader.IsDBNull(5) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : (&lt;span style="color:#2b91af;"&gt;DateTime&lt;/span&gt;?)reader.GetDateTime(5), ShipVia = reader.IsDBNull(6) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : (&lt;span style="color:blue;"&gt;int&lt;/span&gt;?)reader.GetInt32(6), Freight = reader.IsDBNull(7) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : (&lt;span style="color:blue;"&gt;decimal&lt;/span&gt;?)reader.GetDecimal(7), ShipName = reader.IsDBNull(8) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : reader.GetString(8), ShipAddress = reader.IsDBNull(9) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : reader.GetString(9), ShipCity = reader.IsDBNull(10) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : reader.GetString(10), ShipRegion = reader.IsDBNull(11) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : reader.GetString(11), ShipPostalCode = reader.IsDBNull(12) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : reader.GetString(12), ShipCountry = reader.IsDBNull(13) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : reader.GetString(13) };&lt;/p&gt;    &lt;p style="margin:0px;"&gt;}&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;OrderDetail&lt;/span&gt; GetOrderDetail(&lt;span style="color:#2b91af;"&gt;SqlDataReader&lt;/span&gt; reader)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;{&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;OrderDetail&lt;/span&gt; { OrderID = reader.GetInt32(0), ProductID = reader.GetInt32(1), UnitPrice = reader.GetDecimal(2), Quantity = reader.GetInt16(3), Discount = reader.GetFloat(4) };&lt;/p&gt;    &lt;p style="margin:0px;"&gt;}&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Customer&lt;/span&gt; GetCustomer(&lt;span style="color:#2b91af;"&gt;SqlDataReader&lt;/span&gt; reader)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;{&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (reader.GetBoolean(14))&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; GetMember(reader);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; GetCustomer&amp;lt;&lt;span style="color:#2b91af;"&gt;Customer&lt;/span&gt;&amp;gt;(reader);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;}&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; T GetCustomer&amp;lt;T&amp;gt;(&lt;span style="color:#2b91af;"&gt;SqlDataReader&lt;/span&gt; reader) &lt;span style="color:blue;"&gt;where&lt;/span&gt; T : &lt;span style="color:#2b91af;"&gt;Customer&lt;/span&gt;, &lt;span style="color:blue;"&gt;new&lt;/span&gt;()&lt;/p&gt;    &lt;p style="margin:0px;"&gt;{&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;new&lt;/span&gt; T { CustomerID = reader.GetString(0), CompanyName = reader.GetString(1), ContactName = reader.IsDBNull(2) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : reader.GetString(2), ContactTitle = reader.IsDBNull(3) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : reader.GetString(3), Address = reader.IsDBNull(4) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : reader.GetString(4), City = reader.IsDBNull(5) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : reader.GetString(5), Region = reader.IsDBNull(6) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : reader.GetString(6), PostalCode = reader.IsDBNull(7) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : reader.GetString(7), Country = reader.IsDBNull(8) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : reader.GetString(8), Phone = reader.IsDBNull(9) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : reader.GetString(9), Fax = reader.IsDBNull(10) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : reader.GetString(10) };&lt;/p&gt;    &lt;p style="margin:0px;"&gt;}&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Member&lt;/span&gt; GetMember(&lt;span style="color:#2b91af;"&gt;SqlDataReader&lt;/span&gt; reader)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;{&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;var&lt;/span&gt; member = GetCustomer&amp;lt;&lt;span style="color:#2b91af;"&gt;Member&lt;/span&gt;&amp;gt;(reader);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; member.Since = reader.IsDBNull(11) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : (&lt;span style="color:#2b91af;"&gt;DateTime&lt;/span&gt;?)reader.GetDateTime(11);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; member.Points = reader.IsDBNull(12) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : (&lt;span style="color:blue;"&gt;int&lt;/span&gt;?)reader.GetInt32(12);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; member.CardNumber = reader.IsDBNull(13) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : reader.GetString(13);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; member;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;}&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt; GetProduct(&lt;span style="color:#2b91af;"&gt;SqlDataReader&lt;/span&gt; dataReader)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;{&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt; { ProductID = dataReader.GetInt32(0), ProductName = dataReader.GetString(1), SupplierID = dataReader.IsDBNull(2) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : (&lt;span style="color:blue;"&gt;int&lt;/span&gt;?)dataReader.GetInt32(2), CategoryID = dataReader.IsDBNull(3) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : (&lt;span style="color:blue;"&gt;int&lt;/span&gt;?)dataReader.GetInt32(3), QuantityPerUnit = dataReader.IsDBNull(4) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : dataReader.GetString(4), UnitPrice = dataReader.IsDBNull(5) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : (&lt;span style="color:blue;"&gt;decimal&lt;/span&gt;?)dataReader.GetDecimal(5), UnitsInStock = dataReader.IsDBNull(6) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : (&lt;span style="color:blue;"&gt;short&lt;/span&gt;?)dataReader.GetInt16(6), UnitsOnOrder = dataReader.IsDBNull(7) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : (&lt;span style="color:blue;"&gt;short&lt;/span&gt;?)dataReader.GetInt16(7), ReorderLevel = dataReader.IsDBNull(8) ? &lt;span style="color:blue;"&gt;null&lt;/span&gt; : (&lt;span style="color:blue;"&gt;short&lt;/span&gt;?)dataReader.GetInt16(8), Discontinued = dataReader.GetBoolean(9) };&lt;/p&gt;    &lt;p style="margin:0px;"&gt;}&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;Crazy!&lt;/p&gt;  &lt;p&gt;With EF, this is simply the following:&lt;/p&gt;  &lt;div style="font-family:courier new;background:white;color:black;font-size:10pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:green;"&gt;//Generated file&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;partial&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindService&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;{&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;static&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Func&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;NorthwindEntities&lt;/span&gt;, System.&lt;span style="color:#2b91af;"&gt;Int32&lt;/span&gt;, &lt;span style="color:#2b91af;"&gt;Order&lt;/span&gt;&amp;gt; GetOrderCQ = &lt;span style="color:#2b91af;"&gt;CompiledQuery&lt;/span&gt;.Compile&amp;lt;&lt;span style="color:#2b91af;"&gt;NorthwindEntities&lt;/span&gt;, System.&lt;span style="color:#2b91af;"&gt;Int32&lt;/span&gt;, &lt;span style="color:#2b91af;"&gt;Order&lt;/span&gt;&amp;gt;((context, OrderID) =&amp;gt; context.Orders.OfType&amp;lt;&lt;span style="color:#2b91af;"&gt;Order&lt;/span&gt;&amp;gt;().FirstOrDefault(e =&amp;gt; e.OrderID == OrderID));&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;static&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Func&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;NorthwindEntities&lt;/span&gt;, System.&lt;span style="color:#2b91af;"&gt;Int32&lt;/span&gt;, &lt;span style="color:#2b91af;"&gt;Order&lt;/span&gt;&amp;gt; GetOrderWithIncludeCQ { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;set&lt;/span&gt;; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Order&lt;/span&gt; GetOrder(System.&lt;span style="color:#2b91af;"&gt;Int32&lt;/span&gt; OrderID)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; context = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindEntities&lt;/span&gt;())&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (GetOrderWithIncludeCQ != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; GetOrderWithIncludeCQ(context, OrderID);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; GetOrderCQ(context, OrderID);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;}&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:green;"&gt;//My partial part&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;partial&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NorthwindService&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;{&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;static&lt;/span&gt; NorthwindService()&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;div style="font-family:courier new;background:white;color:black;font-size:10pt;"&gt;     &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; GetOrderWithIncludeCQ = (context, orderID) =&amp;gt; context.Orders.Include(&lt;span style="color:#a31515;"&gt;&amp;quot;OrderDetails.Product&amp;quot;&lt;/span&gt;).Include(&lt;span style="color:#a31515;"&gt;&amp;quot;Customer&amp;quot;&lt;/span&gt;).FirstOrDefault(o =&amp;gt; o.OrderID == orderID);&lt;/p&gt;   &lt;/div&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;}&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;Moreover, as explained previously, with EF I write only one line of code:&lt;/p&gt;  &lt;div style="font-family:courier new;background:white;color:black;font-size:10pt;"&gt;   &lt;p style="margin:0px;"&gt;GetOrderWithIncludeCQ = (context, orderID) =&amp;gt; context.Orders.Include(&lt;span style="color:#a31515;"&gt;&amp;quot;OrderDetails.Product&amp;quot;&lt;/span&gt;).Include(&lt;span style="color:#a31515;"&gt;&amp;quot;Customer&amp;quot;&lt;/span&gt;).FirstOrDefault(o =&amp;gt; o.OrderID == orderID);&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;What a productivity gain!&lt;/p&gt;  &lt;p&gt;This is the dev time function of the number of entities:&lt;/p&gt;  &lt;table border="2" cellspacing="0" cellpadding="2" width="944"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td width="146"&gt;Nb entités / temps de dev&lt;/td&gt;        &lt;td width="39"&gt;         &lt;p align="right"&gt;1&lt;/p&gt;       &lt;/td&gt;        &lt;td width="39"&gt;         &lt;p align="right"&gt;2&lt;/p&gt;       &lt;/td&gt;        &lt;td width="39"&gt;         &lt;p align="right"&gt;3&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;4&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;5&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;6&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;7&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;8&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;9&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;10&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;11&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;12&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;13&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;14&lt;/p&gt;       &lt;/td&gt;        &lt;td width="57"&gt;         &lt;p align="right"&gt;100&lt;/p&gt;       &lt;/td&gt;        &lt;td width="66"&gt;         &lt;p align="right"&gt;500&lt;/p&gt;       &lt;/td&gt;        &lt;td width="66"&gt;         &lt;p align="right"&gt;1000&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="146"&gt;&lt;strong&gt;EF&lt;/strong&gt;&lt;/td&gt;        &lt;td width="39"&gt;         &lt;p align="right"&gt;3&lt;/p&gt;       &lt;/td&gt;        &lt;td width="39"&gt;         &lt;p align="right"&gt;3&lt;/p&gt;       &lt;/td&gt;        &lt;td width="39"&gt;         &lt;p align="right"&gt;4&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;4&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;4&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;4&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;5&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;5&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;5&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;5&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;6&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;6&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;6&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;6&lt;/p&gt;       &lt;/td&gt;        &lt;td width="57"&gt;         &lt;p align="right"&gt;28&lt;/p&gt;       &lt;/td&gt;        &lt;td width="66"&gt;         &lt;p align="right"&gt;128&lt;/p&gt;       &lt;/td&gt;        &lt;td width="66"&gt;         &lt;p align="right"&gt;253&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="146"&gt;&lt;strong&gt;ADO .NET 2.0&lt;/strong&gt;&lt;/td&gt;        &lt;td width="40"&gt;         &lt;p align="right"&gt;35&lt;/p&gt;       &lt;/td&gt;        &lt;td width="40"&gt;         &lt;p align="right"&gt;65&lt;/p&gt;       &lt;/td&gt;        &lt;td width="39"&gt;         &lt;p align="right"&gt;95&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;125&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;155&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;185&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;215&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;245&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;275&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;305&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;335&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;365&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;395&lt;/p&gt;       &lt;/td&gt;        &lt;td width="48"&gt;         &lt;p align="right"&gt;425&lt;/p&gt;       &lt;/td&gt;        &lt;td width="57"&gt;         &lt;p align="right"&gt;3005&lt;/p&gt;       &lt;/td&gt;        &lt;td width="66"&gt;         &lt;p align="right"&gt;15005&lt;/p&gt;       &lt;/td&gt;        &lt;td width="66"&gt;         &lt;p align="right"&gt;30005&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;So for 1000 entities, with ADO 2.0, it takes more than 66 days (7.5 h per day) against only 4 hours for Entity Framework. Ok I’m not honnest. If we have 1000 entities, it’s better to split our model into some models. SO we will say 2 days for EF against 2.5 months for ADO 2.0. Great isn’t it?&lt;/p&gt;  &lt;p&gt;Moreover, the EF code is easier to read, there is not a lot of reason to keep on using ADO .NET 2.0. &lt;/p&gt;  &lt;p&gt;I just want to tell one last point: it’s very important to have a training on EF (for this you can contact me (matthieu.mezil at live.fr)). This is very important because even if EF seems very easy to use, there are important concepts you have to know:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;not to lose a lot of time &lt;/li&gt;    &lt;li&gt;to get the result you wished (particularly with the non persisted entities) &lt;/li&gt;    &lt;li&gt;not to have bad performance &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You can download the tt I wrote &lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/matthieu.Demo/5342.NorthwindService.zip" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1733662" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/matthieu/archive/tags/.Net/default.aspx">.Net</category><category domain="http://msmvps.com/blogs/matthieu/archive/tags/Entity+Framework+_2800_EF_2900_/default.aspx">Entity Framework (EF)</category><category domain="http://msmvps.com/blogs/matthieu/archive/tags/Entity+Data+Model+_2800_EDM_2900_/default.aspx">Entity Data Model (EDM)</category><category domain="http://msmvps.com/blogs/matthieu/archive/tags/WCF/default.aspx">WCF</category><category domain="http://msmvps.com/blogs/matthieu/archive/tags/T4/default.aspx">T4</category></item><item><title>ADO.NET EntityObject Generator: how to get the EntityType’s EntitySet and how to get EntitySet’s EntityTypes?</title><link>http://msmvps.com/blogs/matthieu/archive/2009/09/02/ado-net-entityobject-generator-how-to-get-the-entitytype-s-entityset-and-how-to-get-entityset-s-entitytypes.aspx</link><pubDate>Wed, 02 Sep 2009 20:49:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1720351</guid><dc:creator>Matthieu MEZIL</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/matthieu/rsscomments.aspx?PostID=1720351</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/matthieu/commentapi.aspx?PostID=1720351</wfw:comment><comments>http://msmvps.com/blogs/matthieu/archive/2009/09/02/ado-net-entityobject-generator-how-to-get-the-entitytype-s-entityset-and-how-to-get-entityset-s-entitytypes.aspx#comments</comments><description>&lt;p&gt;One of my customers wanted to know how to get all EntityTypes for an EntitySet in his T4 template based on the MS ADO.NET EntityObject Generator one.&lt;/p&gt;
&lt;p&gt;So I made &lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/matthieu.Demo/6470.Model1.zip"&gt;a POC&lt;/a&gt; for him. &lt;/p&gt;
&lt;p&gt;What do I do?&lt;/p&gt;
&lt;p&gt;I change two classes included in the template (my changes are in bold):&lt;/p&gt;
&lt;div style="font-family:courier new;background:white;color:black;font-size:10pt;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;EntitySetObjectSetPropertyWrapper&lt;/span&gt; : &lt;span style="color:#2b91af;"&gt;MetadataItemWrapper&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;{&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; EntitySetObjectSetPropertyWrapper(&lt;span style="color:#2b91af;"&gt;EntitySet&lt;/span&gt; entitySet, &lt;span style="color:#2b91af;"&gt;WrapperBase&lt;/span&gt; wrapper)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : &lt;span style="color:blue;"&gt;base&lt;/span&gt;(entitySet, wrapper)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/span&gt; &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;EntitySet&lt;/span&gt; Source { &lt;span style="color:blue;"&gt;get&lt;/span&gt; { &lt;span style="color:blue;"&gt;return&lt;/span&gt; (&lt;span style="color:#2b91af;"&gt;EntitySet&lt;/span&gt;)&lt;span style="color:blue;"&gt;base&lt;/span&gt;.Source; } }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; ModelName { &lt;span style="color:blue;"&gt;get&lt;/span&gt; { &lt;span style="color:blue;"&gt;return&lt;/span&gt; Source.Name; } }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; PropertyName { &lt;span style="color:blue;"&gt;get&lt;/span&gt; { &lt;span style="color:blue;"&gt;return&lt;/span&gt; Escape(Source.Name); } }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; FieldName { &lt;span style="color:blue;"&gt;get&lt;/span&gt; { &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:#a31515;"&gt;&amp;quot;_&amp;quot;&lt;/span&gt; + Source.Name; } }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; TypeName { &lt;span style="color:blue;"&gt;get&lt;/span&gt; { &lt;span style="color:blue;"&gt;return&lt;/span&gt; GetStructuralTypeName(Source.ElementType); } }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; GetterAccessibility { &lt;span style="color:blue;"&gt;get&lt;/span&gt; { &lt;span style="color:blue;"&gt;return&lt;/span&gt; GetAccessibility(Source, GETTER_ACCESS); } }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; NewModifier { &lt;span style="color:blue;"&gt;get&lt;/span&gt; { &lt;span style="color:blue;"&gt;return&lt;/span&gt; HasBaseMemberWithMatchingName(&lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(ObjectContext), Source.Name) ? &lt;span style="color:#a31515;"&gt;&amp;quot;new &amp;quot;&lt;/span&gt; : &lt;span style="color:#a31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;; } }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;EntityType&lt;/span&gt;&amp;gt; GetAllEntityTypes(&lt;span style="color:#2b91af;"&gt;ItemCollectionWrapper&lt;/span&gt; edm)&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;var&lt;/span&gt; entityType = Source.ElementType;&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;yield&lt;/span&gt; &lt;span style="color:blue;"&gt;return&lt;/span&gt; entityType;&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;var&lt;/span&gt; entityTypeWrapper = edm.SourceEntities.First(e =&amp;gt; e.Source == entityType);&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;foreach&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; subEntityType &lt;span style="color:blue;"&gt;in&lt;/span&gt; entityTypeWrapper.SubEntityTypes(edm))&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&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 style="color:blue;"&gt;yield&lt;/span&gt; &lt;span style="color:blue;"&gt;return&lt;/span&gt; subEntityType;&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;}&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;EntityTypeWrapper&lt;/span&gt; : &lt;span style="color:#2b91af;"&gt;StructuralTypeWrapper&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;{&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; EntityTypeWrapper(&lt;span style="color:#2b91af;"&gt;EntityType&lt;/span&gt; entity, &lt;span style="color:#2b91af;"&gt;WrapperBase&lt;/span&gt; wrapper)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : &lt;span style="color:blue;"&gt;base&lt;/span&gt;(entity, wrapper)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;EntityType&lt;/span&gt; Source { &lt;span style="color:blue;"&gt;get&lt;/span&gt; { &lt;span style="color:blue;"&gt;return&lt;/span&gt; (&lt;span style="color:#2b91af;"&gt;EntityType&lt;/span&gt;)&lt;span style="color:blue;"&gt;base&lt;/span&gt;.Source; } }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; AbstractOption { &lt;span style="color:blue;"&gt;get&lt;/span&gt; { &lt;span style="color:blue;"&gt;return&lt;/span&gt; Source.Abstract ? &lt;span style="color:#a31515;"&gt;&amp;quot;abstract &amp;quot;&lt;/span&gt; : &lt;span style="color:#a31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;; } }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;bool&lt;/span&gt; IsAbstract { &lt;span style="color:blue;"&gt;get&lt;/span&gt; { &lt;span style="color:blue;"&gt;return&lt;/span&gt; Source.Abstract; } }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; BaseTypeName { &lt;span style="color:blue;"&gt;get&lt;/span&gt; { &lt;span style="color:blue;"&gt;return&lt;/span&gt; Source.BaseType == &lt;span style="color:blue;"&gt;null&lt;/span&gt; ? &lt;span style="color:#a31515;"&gt;&amp;quot;EntityObject&amp;quot;&lt;/span&gt; : GetStructuralTypeName((StructuralType)Source.BaseType); } }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; TypeReferenceName { &lt;span style="color:blue;"&gt;get&lt;/span&gt; { &lt;span style="color:blue;"&gt;return&lt;/span&gt; GetStructuralTypeName(Source); } }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;NavigationPropertyWrapper&lt;/span&gt;&amp;gt; NavigationProperties { &lt;span style="color:blue;"&gt;get&lt;/span&gt; { &lt;span style="color:blue;"&gt;return&lt;/span&gt; Source.NavigationProperties.Where(n =&amp;gt; n.DeclaringType == Source).Select(n =&amp;gt; &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NavigationPropertyWrapper&lt;/span&gt;(n, &lt;span style="color:blue;"&gt;this&lt;/span&gt;)); } }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;EntitySet&lt;/span&gt; GetEntitySet(&lt;span style="color:#2b91af;"&gt;ItemCollectionWrapper&lt;/span&gt; edm)&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;return&lt;/span&gt; edm.SourceEntityContainers.SelectMany(c =&amp;gt; c.ObjectSetProperties).First(es =&amp;gt; es.GetAllEntityTypes(edm).Contains(Source)).Source;&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;EntityType&lt;/span&gt;&amp;gt; SubEntityTypes(&lt;span style="color:#2b91af;"&gt;ItemCollectionWrapper&lt;/span&gt; edm, &lt;span style="color:blue;"&gt;bool&lt;/span&gt; recursivity = &lt;span style="color:blue;"&gt;true&lt;/span&gt;)&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;return&lt;/span&gt; edm.SourceEntities.Where(et =&amp;gt; et.AllBaseEntityTypes.Contains(Source)).Select(et =&amp;gt; et.Source);&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;EntityType&lt;/span&gt;&amp;gt; AllBaseEntityTypes&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;get&lt;/span&gt; { &lt;span style="color:blue;"&gt;return&lt;/span&gt; GetBaseEntityTypes(Source); }&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;static&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;EntityType&lt;/span&gt;&amp;gt; GetBaseEntityTypes(&lt;span style="color:#2b91af;"&gt;EntityType&lt;/span&gt; entityType)&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;EntityType&lt;/span&gt; baseType;&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (entityType == &lt;span style="color:blue;"&gt;null&lt;/span&gt; || (baseType = (&lt;span style="color:#2b91af;"&gt;EntityType&lt;/span&gt;)entityType.BaseType) == &lt;span style="color:blue;"&gt;null&lt;/span&gt;)&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&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 style="color:blue;"&gt;yield&lt;/span&gt; &lt;span style="color:blue;"&gt;break&lt;/span&gt;;&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;yield&lt;/span&gt; &lt;span style="color:blue;"&gt;return&lt;/span&gt; baseType;&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;foreach&lt;/span&gt; (&lt;span style="color:blue;"&gt;var&lt;/span&gt; subEntityType &lt;span style="color:blue;"&gt;in&lt;/span&gt; GetBaseEntityTypes(baseType))&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&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 style="color:blue;"&gt;yield&lt;/span&gt; &lt;span style="color:blue;"&gt;return&lt;/span&gt; subEntityType;&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/strong&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;}&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;em&gt;Note that in your template, you probably don&amp;#39;t have the syntax colors.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Then you can use it in the rest of your template as I did in &lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/matthieu.Demo/6470.Model1.zip"&gt;my POC&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;/// &amp;lt;summary&amp;gt; &lt;br /&gt;/// &amp;lt;#=set.SummaryComment#&amp;gt; &lt;br /&gt;/// &amp;lt;/summary&amp;gt;&amp;lt;#=set.GetLongDescriptionComment(_regionIndentLevel)#&amp;gt; &lt;br /&gt;&lt;strong&gt;/// &amp;lt;remarks&amp;gt; &lt;br /&gt;/// Entity types: &lt;br /&gt;&amp;lt;# foreach (var entityType in set.GetAllEntityTypes(Edm)) &lt;br /&gt;{ #&amp;gt; &lt;br /&gt;///&amp;nbsp; &amp;lt;#= entityType.Name #&amp;gt; &lt;br /&gt;&amp;lt;# } #&amp;gt; &lt;br /&gt;/// &amp;lt;/remarks&amp;gt; &lt;br /&gt;&lt;/strong&gt;&amp;lt;#=set.NewModifier#&amp;gt;&amp;lt;#=set.GetterAccessibility#&amp;gt; ObjectSet&amp;lt;&amp;lt;#=set.TypeName#&amp;gt;&amp;gt; &amp;lt;#=set.PropertyName#&amp;gt; &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((&amp;lt;#=set.FieldName#&amp;gt; == null)) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&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;lt;#=set.FieldName#&amp;gt; = base.CreateObjectSet&amp;lt;&amp;lt;#=set.TypeName#&amp;gt;&amp;gt;(&amp;quot;&amp;lt;#=set.ModelName#&amp;gt;&amp;quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return &amp;lt;#=set.FieldName#&amp;gt;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;} &lt;/p&gt;
&lt;p&gt;[&amp;hellip;]&lt;/p&gt;
&lt;p&gt;/// &amp;lt;summary&amp;gt; &lt;br /&gt;/// &amp;lt;#=entity.SummaryComment#&amp;gt; &lt;br /&gt;/// &amp;lt;/summary&amp;gt;&amp;lt;#=entity.GetLongDescriptionComment(_regionIndentLevel)#&amp;gt; &lt;br /&gt;&lt;strong&gt;/// &amp;lt;remarks&amp;gt;EntitySet &amp;lt;#= entity.GetEntitySet(Edm).Name #&amp;gt;&amp;lt;/remarks&amp;gt; &lt;br /&gt;&lt;/strong&gt;[EdmEntityTypeAttribute(NamespaceName=&amp;quot;&amp;lt;#=entity.ModelNamespace#&amp;gt;&amp;quot;, Name=&amp;quot;&amp;lt;#=entity.ModelName#&amp;gt;&amp;quot;)] &lt;br /&gt;[Serializable()] &lt;br /&gt;[DataContractAttribute(IsReference=true)] &lt;br /&gt;&amp;lt;# &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach(EntityTypeWrapper subType in Edm.GetAllDirectSubTypes(entity.Source)) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;#&amp;gt; &lt;br /&gt;[KnownTypeAttribute(typeof(&amp;lt;#=subType.TypeReferenceName#&amp;gt;))] &lt;br /&gt;&amp;lt;# &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;#&amp;gt; &lt;br /&gt;&amp;lt;#=entity.TypeAccessibility#&amp;gt; &amp;lt;#=entity.AbstractOption#&amp;gt;partial class &amp;lt;#=entity.ClassName#&amp;gt; : &amp;lt;#=entity.BaseTypeName#&amp;gt; &lt;br /&gt;{ &lt;br /&gt;&amp;lt;# &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!entity.IsAbstract) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteFactoryMethod(entity.FactoryMethodWrapper); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WritePrimitiveTypeProperties(entity, typeof(EntityObject)); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteComplexTypeProperties(entity, typeof(EntityObject)); &lt;br /&gt;#&amp;gt;&lt;/p&gt;
&lt;p&gt;I profit by this post to thank Jeff.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1720351" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/matthieu/archive/tags/.Net/default.aspx">.Net</category><category domain="http://msmvps.com/blogs/matthieu/archive/tags/Entity+Framework+_2800_EF_2900_/default.aspx">Entity Framework (EF)</category><category domain="http://msmvps.com/blogs/matthieu/archive/tags/Entity+Data+Model+_2800_EDM_2900_/default.aspx">Entity Data Model (EDM)</category><category domain="http://msmvps.com/blogs/matthieu/archive/tags/T4/default.aspx">T4</category></item><item><title>How to have FK in EF v1?</title><link>http://msmvps.com/blogs/matthieu/archive/2009/07/21/how-to-have-fk-in-ef-v1.aspx</link><pubDate>Tue, 21 Jul 2009 21:03:08 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1704735</guid><dc:creator>Matthieu MEZIL</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/matthieu/rsscomments.aspx?PostID=1704735</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/matthieu/commentapi.aspx?PostID=1704735</wfw:comment><comments>http://msmvps.com/blogs/matthieu/archive/2009/07/21/how-to-have-fk-in-ef-v1.aspx#comments</comments><description>&lt;p&gt;Before answering this question, I will start with another one: why do we need FK?&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;to be able to change a relationship without loading the related entity but we can already do it with the EntityReference property. &lt;/li&gt;    &lt;li&gt;for the binding &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;With the windows forms ComboBox, we don’t need it because you don’t have to systematically set the ValueMember property:&lt;/p&gt;  &lt;div style="font-family:courier new;background:white;color:black;font-size:10pt;"&gt;   &lt;p style="margin:0px;"&gt;categoriesComboBox.DataSource = context.Categories;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;categoriesComboBox.DisplayMember = &lt;span style="color:#a31515;"&gt;&amp;quot;CategoryName&amp;quot;&lt;/span&gt;;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;categoriesComboBox.DataBindings.Add(&lt;span style="color:#a31515;"&gt;&amp;quot;SelectedItem&amp;quot;&lt;/span&gt;, product, &lt;span style="color:#a31515;"&gt;&amp;quot;Category&amp;quot;&lt;/span&gt;);&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;But the problem is for the DataGridViewComboBoxColumn and the ASP DropDownList. In these cases, we really need the FK property.&lt;/p&gt;  &lt;p&gt;My first idea was to add the property:&lt;/p&gt;  &lt;div style="font-family:courier new;background:white;color:black;font-size:10pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;partial&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;{&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;int&lt;/span&gt; CategoryID&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;get&lt;/span&gt; { &lt;span style="color:blue;"&gt;return&lt;/span&gt; (&lt;span style="color:blue;"&gt;int&lt;/span&gt;)CategoryReference.EntityKey.EntityKeyValues.First().Value; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;set&lt;/span&gt; { CategoryReference.EntityKey = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;EntityKey&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;NorthwindEntities.Categories&amp;quot;&lt;/span&gt;, &lt;span style="color:#a31515;"&gt;&amp;quot;CategoryID&amp;quot;&lt;/span&gt;, &lt;span style="color:blue;"&gt;value&lt;/span&gt;); }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;}&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;Ok, it works. However, the problem is the fact that we can been tempted to use it in a LINQ To Entities query. But, of course, in this case, it fails.&lt;/p&gt;  &lt;p&gt;The binding doesn’t directly use the property of the class but the PropertyDescriptor which are, by default, generated from the properties. My idea is not to add a new property but to add a new PropertyDescriptor. For this, we have to implement the ICustomTypeDescriptor.&lt;/p&gt;  &lt;div style="font-family:courier new;background:white;color:black;font-size:10pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;partial&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt; : &lt;span style="color:#2b91af;"&gt;ICustomTypeDescriptor&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;{&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;AttributeCollection&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ICustomTypeDescriptor&lt;/span&gt;.GetAttributes()&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;TypeDescriptor&lt;/span&gt;.GetAttributes(&lt;span style="color:blue;"&gt;this&lt;/span&gt;, &lt;span style="color:blue;"&gt;true&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;string&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ICustomTypeDescriptor&lt;/span&gt;.GetClassName()&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;TypeDescriptor&lt;/span&gt;.GetClassName(&lt;span style="color:blue;"&gt;this&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;string&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ICustomTypeDescriptor&lt;/span&gt;.GetComponentName()&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;TypeDescriptor&lt;/span&gt;.GetComponentName(&lt;span style="color:blue;"&gt;this&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;TypeConverter&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ICustomTypeDescriptor&lt;/span&gt;.GetConverter()&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;TypeDescriptor&lt;/span&gt;.GetConverter(&lt;span style="color:blue;"&gt;this&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;EventDescriptor&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ICustomTypeDescriptor&lt;/span&gt;.GetDefaultEvent()&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;TypeDescriptor&lt;/span&gt;.GetDefaultEvent(&lt;span style="color:blue;"&gt;this&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;PropertyDescriptor&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ICustomTypeDescriptor&lt;/span&gt;.GetDefaultProperty()&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;TypeDescriptor&lt;/span&gt;.GetDefaultProperty(&lt;span style="color:blue;"&gt;this&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;object&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ICustomTypeDescriptor&lt;/span&gt;.GetEditor(&lt;span style="color:#2b91af;"&gt;Type&lt;/span&gt; editorBaseType)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;TypeDescriptor&lt;/span&gt;.GetEditor(&lt;span style="color:blue;"&gt;this&lt;/span&gt;, editorBaseType);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;EventDescriptorCollection&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ICustomTypeDescriptor&lt;/span&gt;.GetEvents(&lt;span style="color:#2b91af;"&gt;Attribute&lt;/span&gt;[] attributes)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;TypeDescriptor&lt;/span&gt;.GetEvents(attributes);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;EventDescriptorCollection&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ICustomTypeDescriptor&lt;/span&gt;.GetEvents()&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;TypeDescriptor&lt;/span&gt;.GetEvents(&lt;span style="color:blue;"&gt;this&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;PropertyDescriptorCollection&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ICustomTypeDescriptor&lt;/span&gt;.GetProperties(&lt;span style="color:#2b91af;"&gt;Attribute&lt;/span&gt;[] attributes)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;var&lt;/span&gt; props = &lt;span style="color:#2b91af;"&gt;TypeDescriptor&lt;/span&gt;.GetProperties(&lt;span style="color:blue;"&gt;this&lt;/span&gt;, attributes, &lt;span style="color:blue;"&gt;true&lt;/span&gt;).Cast&amp;lt;&lt;span style="color:#2b91af;"&gt;PropertyDescriptor&lt;/span&gt;&amp;gt;().ToList();&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; props.Add(&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;FKPropertyDescriptor&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;Product&lt;/span&gt;&amp;gt;(p =&amp;gt; p.CategoryReference, &lt;span style="color:#a31515;"&gt;&amp;quot;CategoryID&amp;quot;&lt;/span&gt;, &lt;span style="color:#a31515;"&gt;&amp;quot;CategoryCategoryID&amp;quot;&lt;/span&gt;, &lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:blue;"&gt;int&lt;/span&gt;)));&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;PropertyDescriptorCollection&lt;/span&gt;(props.ToArray());&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;PropertyDescriptorCollection&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ICustomTypeDescriptor&lt;/span&gt;.GetProperties()&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; ((&lt;span style="color:#2b91af;"&gt;ICustomTypeDescriptor&lt;/span&gt;)&lt;span style="color:blue;"&gt;this&lt;/span&gt;).GetProperties(&lt;span style="color:blue;"&gt;null&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;object&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ICustomTypeDescriptor&lt;/span&gt;.GetPropertyOwner(&lt;span style="color:#2b91af;"&gt;PropertyDescriptor&lt;/span&gt; pd)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;this&lt;/span&gt;;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;}&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;public &lt;/span&gt;&lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;FKPropertyDescriptor&lt;/span&gt;&amp;lt;T&amp;gt; : &lt;span style="color:#2b91af;"&gt;PropertyDescriptor&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;{&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Type&lt;/span&gt; _propertyDescriptorType;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Func&lt;/span&gt;&amp;lt;T, &lt;span style="color:#2b91af;"&gt;EntityReference&lt;/span&gt;&amp;gt; _getEntityReference;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; PropertyName { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;set&lt;/span&gt;; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; FKPropertyDescriptor(&lt;span style="color:#2b91af;"&gt;Func&lt;/span&gt;&amp;lt;T, &lt;span style="color:#2b91af;"&gt;EntityReference&lt;/span&gt;&amp;gt; getEntityReference, &lt;span style="color:blue;"&gt;string&lt;/span&gt; propertyName, &lt;span style="color:blue;"&gt;string&lt;/span&gt; propertyDescriptorName, &lt;span style="color:#2b91af;"&gt;Type&lt;/span&gt; propertyDescriptorType)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : &lt;span style="color:blue;"&gt;base&lt;/span&gt;(propertyDescriptorName, &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Attribute&lt;/span&gt;[0])&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; _getEntityReference = getEntityReference;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; PropertyName = propertyName;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; _propertyDescriptorType = propertyDescriptorType;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;override&lt;/span&gt; &lt;span style="color:blue;"&gt;bool&lt;/span&gt; CanResetValue(&lt;span style="color:blue;"&gt;object&lt;/span&gt; component)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;false&lt;/span&gt;;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;override&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Type&lt;/span&gt; ComponentType&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;get&lt;/span&gt; { &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(T); }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;override&lt;/span&gt; &lt;span style="color:blue;"&gt;object&lt;/span&gt; GetValue(&lt;span style="color:blue;"&gt;object&lt;/span&gt; component)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; _getEntityReference((T)component).EntityKey.EntityKeyValues.First(ekv =&amp;gt; ekv.Key == PropertyName).Value;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;override&lt;/span&gt; &lt;span style="color:blue;"&gt;bool&lt;/span&gt; IsReadOnly&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;get&lt;/span&gt; { &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;false&lt;/span&gt;; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;override&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Type&lt;/span&gt; PropertyType&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;get&lt;/span&gt; { &lt;span style="color:blue;"&gt;return&lt;/span&gt; _propertyDescriptorType; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;override&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; ResetValue(&lt;span style="color:blue;"&gt;object&lt;/span&gt; component)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;override&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; SetValue(&lt;span style="color:blue;"&gt;object&lt;/span&gt; component, &lt;span style="color:blue;"&gt;object&lt;/span&gt; value)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;var&lt;/span&gt; entityKey = _getEntityReference((T)component).EntityKey;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; _getEntityReference((T)component).EntityKey = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;EntityKey&lt;/span&gt;(&lt;span style="color:blue;"&gt;string&lt;/span&gt;.Concat(entityKey.EntityContainerName, &lt;span style="color:#a31515;"&gt;&amp;quot;.&amp;quot;&lt;/span&gt;, entityKey.EntitySetName), entityKey.EntityKeyValues.Where(ekm =&amp;gt; ekm.Key != PropertyName).Union(&lt;span style="color:blue;"&gt;new&lt;/span&gt;[] { &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;EntityKeyMember&lt;/span&gt;(PropertyName, value) }));&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;sp