<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="RSS_xslt_style.asp" version="1.0" ?>
<rss version="2.0" xmlns:WebWizForums="http://syndication.webwiz.co.uk/rss_namespace/">
 <channel>
  <title>DevForce Community Forum : Generic Distinct Projection</title>
  <link>http://www.ideablade.com/forum/</link>
  <description>This is an XML content feed of; DevForce Community Forum : DevForce 2010 : Generic Distinct Projection</description>
  <pubDate>Wed, 15 Apr 2026 18:02:26 -700</pubDate>
  <lastBuildDate>Tue, 25 Jan 2011 16:29:09 -700</lastBuildDate>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Web Wiz Forums 9.69</generator>
  <ttl>360</ttl>
  <WebWizForums:feedURL>www.ideablade.com/forum/RSS_post_feed.asp?TID=2465</WebWizForums:feedURL>
  <image>
   <title>DevForce Community Forum</title>
   <url>http://www.ideablade.com/forum/forum_images/IdeaBlade_logo_tm.png</url>
   <link>http://www.ideablade.com/forum/</link>
  </image>
  <item>
   <title>Generic Distinct Projection : Hi Calvin,  Sorry if it wasn&amp;#039;t...</title>
   <link>http://www.ideablade.com/forum/forum_posts.asp?TID=2465&amp;PID=9785#9785</link>
   <description>
    <![CDATA[<strong>Author:</strong> <a href="http://www.ideablade.com/forum/member_profile.asp?PF=892" rel="nofollow">sbelini</a><br /><strong>Subject:</strong> 2465<br /><strong>Posted:</strong> 25-Jan-2011 at 4:29pm<br /><br />Hi Calvin,<DIV>&nbsp;</DIV><DIV>Sorry if it wasn't clear in my previous post, but&nbsp;this feature is not available yet.</DIV><DIV>&nbsp;</DIV><DIV>Like I previously mentioned, the above mentioned&nbsp;feature (returning projections in a query built dynamically) will be available with DevForce2010 v6.0.9.0.</DIV><DIV>&nbsp;</DIV><DIV>The snippets I provided are only to demonstrate what DevForce can accomplish as of now.</DIV><DIV>&nbsp;</DIV><DIV>Best regards, </DIV><DIV>&nbsp;&nbsp; Silvio.</DIV>]]>
   </description>
   <pubDate>Tue, 25 Jan 2011 16:29:09 -700</pubDate>
   <guid isPermaLink="true">http://www.ideablade.com/forum/forum_posts.asp?TID=2465&amp;PID=9785#9785</guid>
  </item> 
  <item>
   <title>Generic Distinct Projection : Thanks for the reply Silvio.You&amp;#039;re...</title>
   <link>http://www.ideablade.com/forum/forum_posts.asp?TID=2465&amp;PID=9784#9784</link>
   <description>
    <![CDATA[<strong>Author:</strong> <a href="http://www.ideablade.com/forum/member_profile.asp?PF=1046" rel="nofollow">CalvinC</a><br /><strong>Subject:</strong> 2465<br /><strong>Posted:</strong> 25-Jan-2011 at 4:03pm<br /><br /><div><font ="Apple-style-span" face="C&#111;nsolas" size="2"><div><span ="Apple-style-span" style="-webkit-border-horiz&#111;ntal-spacing: 1px; -webkit-border-vertical-spacing: 1px;">Thanks for the reply Silvio.</span></div><div><span ="Apple-style-span" style="-webkit-border-horiz&#111;ntal-spacing: 1px; -webkit-border-vertical-spacing: 1px;"><br></span></div><div><span ="Apple-style-span" style="-webkit-border-horiz&#111;ntal-spacing: 1px; -webkit-border-vertical-spacing: 1px;">You're demo constructs the Where clause dynamically. &nbsp;That's certainly useful; but it's not what I'm asking about.</span></div><div><span ="Apple-style-span" style="-webkit-border-horiz&#111;ntal-spacing: 1px; -webkit-border-vertical-spacing: 1px;"><br></span></div><div><span ="Apple-style-span" style="-webkit-border-horiz&#111;ntal-spacing: 1px; -webkit-border-vertical-spacing: 1px;">I want to know if it's possible to construct a Select clause dynamically (an anonymous projection) and then subsequently append a Distinct clause.</span></div><div><span ="Apple-style-span" style="-webkit-border-horiz&#111;ntal-spacing: 1px; -webkit-border-vertical-spacing: 1px;"><br></span></div><div><span ="Apple-style-span" style="-webkit-border-horiz&#111;ntal-spacing: 1px; -webkit-border-vertical-spacing: 1px;">I.e, is there a way to construct this line</span></div><div><span ="Apple-style-span" style="-webkit-border-horiz&#111;ntal-spacing: 1px; -webkit-border-vertical-spacing: 1px;">&nbsp;&nbsp; &nbsp;.Select(e =&gt; new {Name = e.FirstName, e.City})</span></div><div><span ="Apple-style-span" style="-webkit-border-horiz&#111;ntal-spacing: 1px; -webkit-border-vertical-spacing: 1px;">dynamically (where FirstName and City are supplied as parameters)?</span></div><div style="line-height: 15px; -webkit-border-horiz&#111;ntal-spacing: 1px; -webkit-border-vertical-spacing: 1px; "><br></div></font></div>]]>
   </description>
   <pubDate>Tue, 25 Jan 2011 16:03:17 -700</pubDate>
   <guid isPermaLink="true">http://www.ideablade.com/forum/forum_posts.asp?TID=2465&amp;PID=9784#9784</guid>
  </item> 
  <item>
   <title>Generic Distinct Projection : Hi Calvin,   This is a feature...</title>
   <link>http://www.ideablade.com/forum/forum_posts.asp?TID=2465&amp;PID=9783#9783</link>
   <description>
    <![CDATA[<strong>Author:</strong> <a href="http://www.ideablade.com/forum/member_profile.asp?PF=892" rel="nofollow">sbelini</a><br /><strong>Subject:</strong> 2465<br /><strong>Posted:</strong> 25-Jan-2011 at 3:35pm<br /><br /><P>Hi Calvin, </P><DIV>&nbsp;</DIV><DIV>This is a feature that will be available with DevForce2010 v6.0.9.0. (returning projections in a query built dynamically)</DIV><DIV>&nbsp;</DIV><DIV>&nbsp;</DIV><DIV>Right now you can build the query dynamically, but it will return a collection of the Entity&nbsp;type being queried:</DIV><DIV>&nbsp;</DIV><DIV><FONT color=#0000ff size=2 face=C&#111;nsolas><FONT color=#0000ff size=2 face=C&#111;nsolas><FONT color=#0000ff size=2 face=C&#111;nsolas>&nbsp;&nbsp;var</FONT></FONT></FONT><FONT size=2 face=C&#111;nsolas><FONT size=2 face=C&#111;nsolas> expr1 = </FONT></FONT><FONT color=#2b91af size=2 face=C&#111;nsolas><FONT color=#2b91af size=2 face=C&#111;nsolas><FONT color=#2b91af size=2 face=C&#111;nsolas>PredicateBuilder</FONT></FONT></FONT><FONT size=2 face=C&#111;nsolas><FONT size=2 face=C&#111;nsolas>.Make(</FONT></FONT><FONT color=#0000ff size=2 face=C&#111;nsolas><FONT color=#0000ff size=2 face=C&#111;nsolas><FONT color=#0000ff size=2 face=C&#111;nsolas>typeof</FONT></FONT></FONT><FONT size=2 face=C&#111;nsolas><FONT size=2 face=C&#111;nsolas>(</FONT></FONT><FONT color=#2b91af size=2 face=C&#111;nsolas><FONT color=#2b91af size=2 face=C&#111;nsolas><FONT color=#2b91af size=2 face=C&#111;nsolas>Employee</FONT></FONT></FONT><FONT size=2 face=C&#111;nsolas><FONT size=2 face=C&#111;nsolas>), </FONT></FONT><FONT color=#a31515 size=2 face=C&#111;nsolas><FONT color=#a31515 size=2 face=C&#111;nsolas><FONT color=#a31515 size=2 face=C&#111;nsolas>"LastName"</DIV><DIV><DIV></FONT></FONT></FONT><FONT size=2 face=C&#111;nsolas><FONT size=2 face=C&#111;nsolas>&nbsp; &nbsp; , </FONT></FONT><FONT color=#2b91af size=2 face=C&#111;nsolas><FONT color=#2b91af size=2 face=C&#111;nsolas><FONT color=#2b91af size=2 face=C&#111;nsolas>FilterOperator</FONT></FONT></FONT><FONT size=2 face=C&#111;nsolas><FONT size=2 face=C&#111;nsolas>.StartsWith</DIV><DIV>&nbsp; &nbsp; ,&nbsp;</FONT></FONT><FONT color=#a31515 size=2 face=C&#111;nsolas><FONT color=#a31515 size=2 face=C&#111;nsolas><FONT color=#a31515 size=2 face=C&#111;nsolas>"D"</FONT></FONT></FONT><FONT size=2 face=C&#111;nsolas><FONT size=2 face=C&#111;nsolas>);</DIV><DIV></FONT></FONT><FONT color=#0000ff size=2 face=C&#111;nsolas><FONT color=#0000ff size=2 face=C&#111;nsolas><FONT color=#0000ff size=2 face=C&#111;nsolas>&nbsp;&nbsp;var</FONT></FONT></FONT><FONT size=2 face=C&#111;nsolas><FONT size=2 face=C&#111;nsolas> expr2 = </FONT></FONT><FONT color=#2b91af size=2 face=C&#111;nsolas><FONT color=#2b91af size=2 face=C&#111;nsolas><FONT color=#2b91af size=2 face=C&#111;nsolas>PredicateBuilder</FONT></FONT></FONT><FONT size=2 face=C&#111;nsolas><FONT size=2 face=C&#111;nsolas>.Make(</FONT></FONT><FONT color=#0000ff size=2 face=C&#111;nsolas><FONT color=#0000ff size=2 face=C&#111;nsolas><FONT color=#0000ff size=2 face=C&#111;nsolas>typeof</FONT></FONT></FONT><FONT size=2 face=C&#111;nsolas><FONT size=2 face=C&#111;nsolas>(</FONT></FONT><FONT color=#2b91af size=2 face=C&#111;nsolas><FONT color=#2b91af size=2 face=C&#111;nsolas><FONT color=#2b91af size=2 face=C&#111;nsolas>Employee</FONT></FONT></FONT><FONT size=2 face=C&#111;nsolas><FONT size=2 face=C&#111;nsolas>), </FONT></FONT><FONT color=#a31515 size=2 face=C&#111;nsolas><FONT color=#a31515 size=2 face=C&#111;nsolas><FONT color=#a31515 size=2 face=C&#111;nsolas>"Country"</DIV><DIV></FONT></FONT></FONT><FONT size=2 face=C&#111;nsolas><FONT size=2 face=C&#111;nsolas>&nbsp; &nbsp; , </FONT></FONT><FONT color=#2b91af size=2 face=C&#111;nsolas><FONT color=#2b91af size=2 face=C&#111;nsolas><FONT color=#2b91af size=2 face=C&#111;nsolas>FilterOperator</FONT></FONT></FONT><FONT size=2 face=C&#111;nsolas><FONT size=2 face=C&#111;nsolas>.IsEqualTo</DIV><DIV>&nbsp; &nbsp; , </FONT></FONT><FONT color=#a31515 size=2 face=C&#111;nsolas><FONT color=#a31515 size=2 face=C&#111;nsolas><FONT color=#a31515 size=2 face=C&#111;nsolas>"USA"</FONT></FONT></FONT><FONT size=2 face=C&#111;nsolas><FONT size=2 face=C&#111;nsolas>);</DIV><DIV></FONT></FONT><FONT color=#0000ff size=2 face=C&#111;nsolas><FONT color=#0000ff size=2 face=C&#111;nsolas><FONT color=#0000ff size=2 face=C&#111;nsolas>&nbsp;&nbsp;var</FONT></FONT></FONT><FONT size=2 face=C&#111;nsolas><FONT size=2 face=C&#111;nsolas> expr12 = expr1.And(expr2);</DIV><DIV></FONT></FONT><FONT color=#0000ff size=2 face=C&#111;nsolas><FONT color=#0000ff size=2 face=C&#111;nsolas><FONT color=#0000ff size=2 face=C&#111;nsolas>&nbsp;&nbsp;var</FONT></FONT></FONT><FONT size=2 face=C&#111;nsolas><FONT size=2 face=C&#111;nsolas> exprFunc = (</FONT></FONT><FONT color=#2b91af size=2 face=C&#111;nsolas><FONT color=#2b91af size=2 face=C&#111;nsolas><FONT color=#2b91af size=2 face=C&#111;nsolas>Expression</FONT></FONT></FONT><FONT size=2 face=C&#111;nsolas><FONT size=2 face=C&#111;nsolas>&lt;</FONT></FONT><FONT color=#2b91af size=2 face=C&#111;nsolas><FONT color=#2b91af size=2 face=C&#111;nsolas><FONT color=#2b91af size=2 face=C&#111;nsolas>Func</FONT></FONT></FONT><FONT size=2 face=C&#111;nsolas><FONT size=2 face=C&#111;nsolas>&lt;</FONT></FONT><FONT color=#2b91af size=2 face=C&#111;nsolas><FONT color=#2b91af size=2 face=C&#111;nsolas><FONT color=#2b91af size=2 face=C&#111;nsolas>Employee</FONT></FONT></FONT><FONT size=2 face=C&#111;nsolas><FONT size=2 face=C&#111;nsolas>, </FONT></FONT><FONT color=#0000ff size=2 face=C&#111;nsolas><FONT color=#0000ff size=2 face=C&#111;nsolas><FONT color=#0000ff size=2 face=C&#111;nsolas>bool</FONT></FONT></FONT><FONT size=2 face=C&#111;nsolas><FONT size=2 face=C&#111;nsolas>&gt;&gt;)expr12.ToLambdaExpression();</DIV><DIV></FONT></FONT><FONT color=#0000ff size=2 face=C&#111;nsolas><FONT color=#0000ff size=2 face=C&#111;nsolas><FONT color=#0000ff size=2 face=C&#111;nsolas>&nbsp;&nbsp;var</FONT></FONT></FONT><FONT size=2 face=C&#111;nsolas><FONT size=2 face=C&#111;nsolas> query = mgr.Employees.Where(exprFunc);</DIV><DIV></FONT></FONT><FONT color=#0000ff size=2 face=C&#111;nsolas><FONT color=#0000ff size=2 face=C&#111;nsolas><FONT color=#0000ff size=2 face=C&#111;nsolas>&nbsp;&nbsp;var</FONT></FONT></FONT><FONT size=2 face=C&#111;nsolas><FONT size=2 face=C&#111;nsolas> results = query.Execute(); <FONT color=#008000 size=2 face=C&#111;nsolas><FONT color=#008000 size=2 face=C&#111;nsolas><FONT color=#008000 size=2 face=C&#111;nsolas>// results is a collection of Employee</FONT></FONT></FONT></DIV><DIV></FONT></FONT></DIV></DIV><DIV>You can always query your large table and&nbsp;return a projection with only the desired fields:</DIV><DIV>&nbsp;</DIV><DIV><FONT color=#0000ff size=2 face=C&#111;nsolas><FONT color=#0000ff size=2 face=C&#111;nsolas><FONT color=#0000ff size=2 face=C&#111;nsolas>var</FONT></FONT></FONT><FONT size=2 face=C&#111;nsolas><FONT size=2 face=C&#111;nsolas> query = mgr.Employees</FONT></FONT></DIV><DIV><FONT size=2><FONT face=C&#111;nsolas>&nbsp; </FONT><FONT face=C&#111;nsolas>.Where(e =&gt; e.LastName.StartsWith(<FONT color=#a31515>"D"</FONT>) &amp;&amp; Country.Equals(<FONT color=#a31515>"USA"</FONT>))</FONT></FONT></DIV><DIV><DIV><FONT size=2 face=C&#111;nsolas>&nbsp; .Select(e =&gt; </FONT><FONT face=C&#111;nsolas><FONT color=#0000ff size=2><FONT color=#0000ff size=2><FONT color=#0000ff size=2>new</FONT></FONT></FONT><FONT size=2><FONT size=2> {Name = e.FirstName,&nbsp;e.City});</FONT></FONT></FONT></DIV></DIV><DIV><DIV><FONT size=2><FONT color=#0000ff><FONT color=#0000ff><FONT color=#0000ff face=C&#111;nsolas>&nbsp;&nbsp;var</FONT></FONT></FONT><FONT face=C&#111;nsolas> results = query.Execute(); <FONT color=#008000><FONT color=#008000><FONT color=#008000>// results is a collection of&nbsp;projection { Name, City }</FONT></FONT></FONT></FONT></FONT></DIV><DIV>&nbsp;</DIV><DIV>Note that upon execution a query will always return IEnumerable&lt;T&gt; where T is an Entity type or a projection.</DIV></DIV><DIV>&nbsp;</DIV><DIV>Silvio.</DIV>]]>
   </description>
   <pubDate>Tue, 25 Jan 2011 15:35:51 -700</pubDate>
   <guid isPermaLink="true">http://www.ideablade.com/forum/forum_posts.asp?TID=2465&amp;PID=9783#9783</guid>
  </item> 
  <item>
   <title>Generic Distinct Projection : I have a large flat legacy table that...</title>
   <link>http://www.ideablade.com/forum/forum_posts.asp?TID=2465&amp;PID=9770#9770</link>
   <description>
    <![CDATA[<strong>Author:</strong> <a href="http://www.ideablade.com/forum/member_profile.asp?PF=1046" rel="nofollow">CalvinC</a><br /><strong>Subject:</strong> 2465<br /><strong>Posted:</strong> 24-Jan-2011 at 3:51pm<br /><br /><p ="Ms&#111;normal" style="mso-outline-level:1">I have a large flat legacy tablethat has many columns.<span style="mso-spacerun:yes">&nbsp; </span>I would like to writea generic method that can fetch the distinct values in any two columns:</p><p ="Ms&#111;normal" style="mso-outline-level:1">IEnumerable&lt;T1, T2&gt; FetchUniqueValues&lt;T1,T2&gt;(</p><p ="Ms&#111;normal" style="mso-outline-level:1">&nbsp;&nbsp;Expression&lt;Func&lt;TheEntity,&nbsp;T1&gt;&gt;&nbsp;toTypeT1,</p><p ="Ms&#111;normal" style="mso-outline-level:1">&nbsp;&nbsp;Expression&lt;Func&lt;TheEntity,&nbsp;T2&gt;&gt;&nbsp;toTypeT2)</p><p ="Ms&#111;normal" style="mso-outline-level:1">{</p><p ="Ms&#111;normal" style="mso-outline-level:1"><span style="mso-tab-count:1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>//</p><p ="Ms&#111;normal" style="mso-outline-level:1">}</p><p ="Ms&#111;normal" style="mso-outline-level:1"><br></p><p ="Ms&#111;normal" style="mso-outline-level:1">Is there a clever way to accomplishthis with DevForce?</p><p ="Ms&#111;normal" style="mso-outline-level:1"><br></p><p ="Ms&#111;normal" style="mso-outline-level:1">Thanks!</p>]]>
   </description>
   <pubDate>Mon, 24 Jan 2011 15:51:39 -700</pubDate>
   <guid isPermaLink="true">http://www.ideablade.com/forum/forum_posts.asp?TID=2465&amp;PID=9770#9770</guid>
  </item> 
 </channel>
</rss>