<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/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>Linq to LLBLGen Pro: feature highlights, part 1</title><link>http://weblogs.asp.net/fbouma/archive/2008/06/17/linq-to-llblgen-pro-feature-highlights-part-1.aspx</link><description>Some people asked me what the highlights are of Linq to LLBLGen Pro , which was released this week , as it seems that Linq support is apparently growing on trees these days. In this and some future posts I'll try to sum up some of the characteristic features</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>re: Linq to LLBLGen Pro: feature highlights, part 1</title><link>http://weblogs.asp.net/fbouma/archive/2008/06/17/linq-to-llblgen-pro-feature-highlights-part-1.aspx#6287839</link><pubDate>Tue, 17 Jun 2008 23:07:35 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6287839</guid><dc:creator>BringerOD</dc:creator><author>BringerOD</author><description>&lt;p&gt;@Frans&lt;/p&gt;
&lt;p&gt;Thanks! I am always thinking about how to make my life easier. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Oh, and I agree with Jeff!&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6287839" width="1" height="1"&gt;</description></item><item><title>re: Linq to LLBLGen Pro: feature highlights, part 1</title><link>http://weblogs.asp.net/fbouma/archive/2008/06/17/linq-to-llblgen-pro-feature-highlights-part-1.aspx#6287349</link><pubDate>Tue, 17 Jun 2008 18:37:08 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6287349</guid><dc:creator>FransBouma</dc:creator><author>FransBouma</author><description>&lt;p&gt;Thanks Jeff! :D&lt;/p&gt;
&lt;p&gt;@Bryan: you could do:&lt;/p&gt;
&lt;p&gt;public IQueryable GetCustomersQuery(LinqMetaData metaData)&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;return from c in metaData select c;&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;and then consume it elsewhere:&lt;/p&gt;
&lt;p&gt;foreach (var v in GetCustomersQuery(linqMetaData))&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;// do something.&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;so you can pass it along as an IQueryable typed element. You can also return it as an ILLBLGenProQuery typed element, as all our queries have that type as well, so you can inject an adapter onto which db you want to execute the query at a later stage. &lt;/p&gt;
&lt;p&gt;It's indeed a bit of a problem, and I think the only approach that's doable is the one described above, however it has the disadvantage that ... there's no type known at compile time. So consuming the query can for example be done through databinding at runtime, but if you want to read properties from the elements returned by the query, it is indeed a bit of a problem, which is caused by how Linq queries and anonymous types work I think. My guess is that Microsoft assumed most linq queries are consumed at the spot where they're created, which is logical concerning the fact that the design of Linq forces you to have all information and objects to execute the query INSIDE the query as well, so passing that across tiers isn't always a good thing. &lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6287349" width="1" height="1"&gt;</description></item><item><title>re: Linq to LLBLGen Pro: feature highlights, part 1</title><link>http://weblogs.asp.net/fbouma/archive/2008/06/17/linq-to-llblgen-pro-feature-highlights-part-1.aspx#6286991</link><pubDate>Tue, 17 Jun 2008 16:30:58 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6286991</guid><dc:creator>Jeff Handley</dc:creator><author>Jeff Handley</author><description>&lt;p&gt;Frans,&lt;/p&gt;
&lt;p&gt;You&amp;#39;re a freaking genius. &amp;nbsp;Kudos sir, well done!&lt;/p&gt;
&lt;p&gt;-Jeff&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6286991" width="1" height="1"&gt;</description></item><item><title>re: Linq to LLBLGen Pro: feature highlights, part 1</title><link>http://weblogs.asp.net/fbouma/archive/2008/06/17/linq-to-llblgen-pro-feature-highlights-part-1.aspx#6286895</link><pubDate>Tue, 17 Jun 2008 16:02:55 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6286895</guid><dc:creator>BringerOD</dc:creator><author>BringerOD</author><description>&lt;p&gt;Frans,&lt;/p&gt;
&lt;p&gt;I have a question for you regarding LINQ and a layer development approach. &amp;nbsp; I return the results of a LINQ to LLBLGen query through the layers of the application. &amp;nbsp;When I am sending results that match an entity collection it’s easy to pass them along, when it’s a query that does not match a entity collection, say a subset, or combination of entity’s, the process is more cumbersome. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Right now I have to create a class that represents the values being transferred. &amp;nbsp;Do you have another approach to return collections based on none entity? &amp;nbsp;Creating 100’s of classes that are used sometime just once to transfer data seems to smell a bit to me and I don’t know why. &amp;nbsp;Not really an LLBLGen question, more a LINQ and layered development.&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6286895" width="1" height="1"&gt;</description></item></channel></rss>