<?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 : TDD</title><link>http://msmvps.com/blogs/matthieu/archive/tags/TDD/default.aspx</link><description>Tags: TDD</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><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>POCO T4</title><link>http://msmvps.com/blogs/matthieu/archive/2009/06/26/poco-t4.aspx</link><pubDate>Fri, 26 Jun 2009 08:23:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1696772</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=1696772</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/matthieu/commentapi.aspx?PostID=1696772</wfw:comment><comments>http://msmvps.com/blogs/matthieu/archive/2009/06/26/poco-t4.aspx#comments</comments><description>&lt;p&gt;With EF4 features CTP1, we have a great POCO template which is divided in two tt files to allow us to have the entitiy POCO classes and the context in different projects.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s very very cool.&lt;/p&gt;
&lt;p&gt;However, I think that it&amp;rsquo;s a shame not to have an interface for the context particularly to mock it.&lt;/p&gt;
&lt;p&gt;So I change the .Context.tt like this:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;lt;#@ template language=&amp;quot;C#&amp;quot; debug=&amp;quot;false&amp;quot; hostspecific=&amp;quot;true&amp;quot;#&amp;gt; &lt;br /&gt;&amp;lt;#@ include file=&amp;quot;EF.Utility.ctp.CS.ttinclude&amp;quot;#&amp;gt;&amp;lt;#@ &lt;br /&gt;output extension=&amp;quot;.cs&amp;quot;#&amp;gt;&amp;lt;# &lt;br /&gt;// Copyright (c) Microsoft Corporation.&amp;nbsp; All rights reserved. &lt;/p&gt;
&lt;p&gt;CodeGenerationTools code = new CodeGenerationTools(this); &lt;br /&gt;MetadataLoader loader = new MetadataLoader(this); &lt;br /&gt;CodeRegion region = new CodeRegion(this, 1); &lt;br /&gt;MetadataTools ef = new MetadataTools(this); &lt;/p&gt;
&lt;p&gt;string inputFile = @&amp;quot;Northwind.edmx&amp;quot;; &lt;br /&gt;EdmItemCollection ItemCollection = loader.CreateEdmItemCollection(inputFile); &lt;br /&gt;string namespaceName = code.VsNamespaceSuggestion(); &lt;/p&gt;
&lt;p&gt;TemplateFileManager fileManager = TemplateFileManager.Create(this); &lt;br /&gt;EntityContainer container = ItemCollection.GetItems&amp;lt;EntityContainer&amp;gt;().FirstOrDefault(); &lt;br /&gt;if (container == null) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return &amp;quot;// No EntityContainer exists in the model, so no code was generated&amp;quot;; &lt;br /&gt;} &lt;/p&gt;
&lt;p&gt;// Emit Entity Types &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string interfaceName = &amp;quot;I&amp;quot; + code.Escape(container); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fileManager.StartNewFile(interfaceName + &amp;quot;.cs&amp;quot;); &lt;br /&gt;#&amp;gt; &lt;br /&gt;using System; &lt;br /&gt;using System.Collections.Generic; &lt;br /&gt;using System.Data.Objects; &lt;br /&gt;using System.Data.EntityClient; &lt;br /&gt;using Entities; &lt;/p&gt;
&lt;p&gt;&amp;lt;# &lt;br /&gt;if (!String.IsNullOrEmpty(namespaceName)) &lt;br /&gt;{ &lt;br /&gt;#&amp;gt; &lt;br /&gt;namespace &amp;lt;#=code.EscapeNamespace(namespaceName)#&amp;gt; &lt;br /&gt;{ &lt;br /&gt;&amp;lt;# &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PushIndent(CodeRegion.GetIndent(1)); &lt;br /&gt;} &lt;br /&gt;#&amp;gt; &lt;br /&gt;&amp;lt;#=Accessibility.ForType(container)#&amp;gt; interface &amp;lt;#=interfaceName#&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; foreach (EntitySet entitySet in container.BaseEntitySets.OfType&amp;lt;EntitySet&amp;gt;()) &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;nbsp;&amp;nbsp;&amp;nbsp; IObjectSet&amp;lt;&amp;lt;#=code.Escape(entitySet.ElementType)#&amp;gt;&amp;gt; &amp;lt;#=code.Escape(entitySet)#&amp;gt; { get; } &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;# &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (container.FunctionImports.Any()) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;#&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;# &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; foreach (EdmFunction edmFunction in container.FunctionImports) &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; var parameters = FunctionImportParameter.Create(edmFunction.Parameters, code, ef); &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; string paramList = String.Join(&amp;quot;, &amp;quot;, parameters.Select(p =&amp;gt; p.FunctionParameterType + &amp;quot; &amp;quot; + p.FunctionParameterName).ToArray()); &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; if(edmFunction.ReturnParameter == null) &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; { &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;nbsp;&amp;nbsp;&amp;nbsp; continue; &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; } &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; string returnTypeElement = code.Escape(ef.GetElementType(edmFunction.ReturnParameter.TypeUsage)); &lt;/p&gt;
&lt;p&gt;#&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IEnumerable&amp;lt;&amp;lt;#=returnTypeElement#&amp;gt;&amp;gt; &amp;lt;#=code.Escape(edmFunction)#&amp;gt;(&amp;lt;#=paramList#&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;} &lt;br /&gt;&amp;lt;# &lt;br /&gt;if (!String.IsNullOrEmpty(namespaceName)) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PopIndent(); &lt;br /&gt;#&amp;gt; &lt;br /&gt;} &lt;br /&gt;&amp;lt;# &lt;br /&gt;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fileManager.WriteFiles(); &lt;br /&gt;#&amp;gt; &lt;br /&gt;//------------------------------------------------------------------------------ &lt;br /&gt;// &amp;lt;auto-generated&amp;gt; &lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This code was generated from a template. &lt;br /&gt;// &lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Changes to this file may cause incorrect behavior and will be lost if &lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the code is regenerated. &lt;br /&gt;// &amp;lt;/auto-generated&amp;gt; &lt;br /&gt;//------------------------------------------------------------------------------ &lt;/p&gt;
&lt;p&gt;using System; &lt;br /&gt;using System.Collections.Generic; &lt;br /&gt;using System.Data.Objects; &lt;br /&gt;using System.Data.EntityClient; &lt;br /&gt;using Entities; &lt;/p&gt;
&lt;p&gt;&amp;lt;# &lt;br /&gt;if (!String.IsNullOrEmpty(namespaceName)) &lt;br /&gt;{ &lt;br /&gt;#&amp;gt; &lt;br /&gt;namespace &amp;lt;#=code.EscapeNamespace(namespaceName)#&amp;gt; &lt;br /&gt;{ &lt;br /&gt;&amp;lt;# &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PushIndent(CodeRegion.GetIndent(1)); &lt;br /&gt;} &lt;br /&gt;#&amp;gt; &lt;br /&gt;&amp;lt;#=Accessibility.ForType(container)#&amp;gt; partial class &amp;lt;#=code.Escape(container)#&amp;gt; : ObjectContext, &amp;lt;#= interfaceName #&amp;gt; &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public const string ConnectionString = &amp;quot;name=&amp;lt;#=container.Name#&amp;gt;&amp;quot;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public const string ContainerName = &amp;quot;&amp;lt;#=container.Name#&amp;gt;&amp;quot;; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #region Constructors &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public &amp;lt;#=code.Escape(container)#&amp;gt;() &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : base(ConnectionString, ContainerName) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ContextOptions.DeferredLoadingEnabled = true; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public &amp;lt;#=code.Escape(container)#&amp;gt;(string connectionString) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : base(connectionString, ContainerName) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ContextOptions.DeferredLoadingEnabled = true; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public &amp;lt;#=code.Escape(container)#&amp;gt;(EntityConnection connection) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : base(connection, ContainerName) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ContextOptions.DeferredLoadingEnabled = true; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endregion &lt;/p&gt;
&lt;p&gt;&amp;lt;# &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; region.Begin(&amp;quot;ObjectSet Properties&amp;quot;); &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (EntitySet entitySet in container.BaseEntitySets.OfType&amp;lt;EntitySet&amp;gt;()) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;#&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;#=AccessibilityAndVirtual(Accessibility.ForReadOnlyProperty(entitySet))#&amp;gt; ObjectSet&amp;lt;&amp;lt;#=code.Escape(entitySet.ElementType)#&amp;gt;&amp;gt; &amp;lt;#=code.Escape(entitySet)#&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get { return &amp;lt;#=code.FieldName(entitySet) #&amp;gt;&amp;nbsp; ?? (&amp;lt;#=code.FieldName(entitySet)#&amp;gt; = CreateObjectSet&amp;lt;&amp;lt;#=code.Escape(entitySet.ElementType)#&amp;gt;&amp;gt;(&amp;quot;&amp;lt;#=entitySet.Name#&amp;gt;&amp;quot;)); } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private ObjectSet&amp;lt;&amp;lt;#=code.Escape(entitySet.ElementType)#&amp;gt;&amp;gt; &amp;lt;#=code.FieldName(entitySet)#&amp;gt;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IObjectSet&amp;lt;&amp;lt;#=code.Escape(entitySet.ElementType)#&amp;gt;&amp;gt; &amp;lt;#=interfaceName#&amp;gt;.&amp;lt;#=code.Escape(entitySet)#&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get { return &amp;lt;#=code.Escape(entitySet)#&amp;gt;; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;lt;# &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; region.End(); &lt;br /&gt;#&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;# &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; region.Begin(&amp;quot;Function Imports&amp;quot;); &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (EdmFunction edmFunction in container.FunctionImports) &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; var parameters = FunctionImportParameter.Create(edmFunction.Parameters, code, ef); &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; string paramList = String.Join(&amp;quot;, &amp;quot;, parameters.Select(p =&amp;gt; p.FunctionParameterType + &amp;quot; &amp;quot; + p.FunctionParameterName).ToArray()); &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; if(edmFunction.ReturnParameter == null) &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; { &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;nbsp;&amp;nbsp;&amp;nbsp; continue; &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; } &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; string returnTypeElement = code.Escape(ef.GetElementType(edmFunction.ReturnParameter.TypeUsage)); &lt;/p&gt;
&lt;p&gt;#&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;#=AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction))#&amp;gt; ObjectResult&amp;lt;&amp;lt;#=returnTypeElement#&amp;gt;&amp;gt; &amp;lt;#=code.Escape(edmFunction)#&amp;gt;(&amp;lt;#=paramList#&amp;gt;) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;lt;# &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; foreach (var parameter in parameters) &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; { &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;nbsp;&amp;nbsp;&amp;nbsp; if (!parameter.NeedsLocalVariable) &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;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;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; continue; &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;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;#&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ObjectParameter &amp;lt;#=parameter.LocalVariableName#&amp;gt;; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (&amp;lt;#=parameter.IsNullableOfT ? parameter.FunctionParameterName + &amp;quot;.HasValue&amp;quot; : parameter.FunctionParameterName + &amp;quot; != null&amp;quot;#&amp;gt;) &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; &amp;lt;#=parameter.LocalVariableName#&amp;gt; = new ObjectParameter(&amp;quot;&amp;lt;#=parameter.EsqlParameterName#&amp;gt;&amp;quot;, &amp;lt;#=parameter.FunctionParameterName#&amp;gt;); &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; else &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; &amp;lt;#=parameter.LocalVariableName#&amp;gt; = new ObjectParameter(&amp;quot;&amp;lt;#=parameter.EsqlParameterName#&amp;gt;&amp;quot;, typeof(&amp;lt;#=parameter.RawClrTypeName#&amp;gt;)); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;lt;# &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; } &lt;br /&gt;#&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return base.ExecuteFunction&amp;lt;&amp;lt;#=returnTypeElement#&amp;gt;&amp;gt;(&amp;quot;&amp;lt;#=edmFunction.Name#&amp;gt;&amp;quot;&amp;lt;#=code.StringBefore(&amp;quot;, &amp;quot;, string.Join(&amp;quot;, &amp;quot;, parameters.Select(p =&amp;gt; p.ExecuteParameterName).ToArray()))#&amp;gt;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IEnumerable&amp;lt;&amp;lt;#=returnTypeElement#&amp;gt;&amp;gt; &amp;lt;#=interfaceName#&amp;gt;.&amp;lt;#=code.Escape(edmFunction)#&amp;gt;(&amp;lt;#=paramList#&amp;gt;) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return &amp;lt;#=code.Escape(edmFunction)#&amp;gt;(&amp;lt;#=String.Join(&amp;quot;, &amp;quot;, parameters.Select(p =&amp;gt; p.FunctionParameterName).ToArray())#&amp;gt;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;lt;# &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; region.End(); &lt;br /&gt;#&amp;gt; &lt;br /&gt;} &lt;br /&gt;&amp;lt;# &lt;br /&gt;if (!String.IsNullOrEmpty(namespaceName)) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PopIndent(); &lt;br /&gt;#&amp;gt; &lt;br /&gt;} &lt;br /&gt;&amp;lt;# &lt;br /&gt;} &lt;br /&gt;#&amp;gt; &lt;br /&gt;&amp;lt;#+ &lt;br /&gt;string AccessibilityAndVirtual(string accessibility) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (accessibility != &amp;quot;private&amp;quot;) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return accessibility + &amp;quot; virtual&amp;quot;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return accessibility; &lt;br /&gt;} &lt;br /&gt;#&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Enjoy &lt;img src="http://msmvps.com/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1696772" 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/T4/default.aspx">T4</category><category domain="http://msmvps.com/blogs/matthieu/archive/tags/TDD/default.aspx">TDD</category></item><item><title>EF4 POCO: my tests</title><link>http://msmvps.com/blogs/matthieu/archive/2009/05/25/ef4-poco-my-tests.aspx</link><pubDate>Mon, 25 May 2009 20:54:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1693116</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=1693116</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/matthieu/commentapi.aspx?PostID=1693116</wfw:comment><comments>http://msmvps.com/blogs/matthieu/archive/2009/05/25/ef4-poco-my-tests.aspx#comments</comments><description>&lt;p&gt;I published &lt;a target="_blank" href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/matthieu.Demo/EF4Beta1Test.zip"&gt;an unit tests project to show how POCO works with EF4&lt;/a&gt;. I also wrote a BetaBugs test class in order to illustrate the POCO implementation Beta bugs.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1693116" 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/TDD/default.aspx">TDD</category></item></channel></rss>