<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Linq</title>
        <link>http://ayende.com/Blog/category/509.aspx</link>
        <description>Linq</description>
        <language>en-US</language>
        <copyright>Ayende Rahien</copyright>
        <managingEditor>Ayende@ayende.com</managingEditor>
        <generator>Subtext Version 1.9.3.51</generator>
        <item>
            <title>ADO.Net Data Services with NHibernate</title>
            <link>http://ayende.com/Blog/archive/2008/07/21/ADO.Net-Data-Services-with-NHibernate.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://wildermuth.com/"&gt;Shawn Wildermuth&lt;/a&gt; has &lt;a href="http://wildermuth.com/2008/07/20/Silverlight_2_NHibernate_LINQ_==_Sweet"&gt;bridged the gap&lt;/a&gt; between the two, implementing IUpdatable on top of Linq to NHibernate. This means that you can now expose your NHibernate domain model as a set of REST services.&lt;/p&gt;  &lt;p&gt;This functionality is now included with Linq for NHibernate. Thanks Shawn!&lt;/p&gt;  &lt;p&gt;There is a live sample here: &lt;a title="http://www.silverlightdata.com/Simple/NHibernate.aspx" href="http://www.silverlightdata.com/Simple/NHibernate.aspx"&gt;http://www.silverlightdata.com/Simple/NHibernate.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Or you can hit the URLs directly and see what kind of formatting it has:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.silverlightdata.com/Simple/HibProducts.svc/Products"&gt;http://www.silverlightdata.com/Simple/HibProducts.svc/Products&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.silverlightdata.com/Simple/HibProducts.svc/Products(1)" href="http://www.silverlightdata.com/Simple/HibProducts.svc/Products(1)"&gt;http://www.silverlightdata.com/Simple/HibProducts.svc/Products(1)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.silverlightdata.com/Simple/HibProducts.svc/Products(1)" href="http://www.silverlightdata.com/Simple/HibProducts.svc/Products(1)/Category"&gt;http://www.silverlightdata.com/Simple/HibProducts.svc/Products(1)/Category&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;From a technological perspective, I think this is awesome. However, there are architectural issues with exposing your model in such a fashion. Specifically, with regards to availability and scalability on the operations side, and schema versioning and adaptability on the development side.&lt;/p&gt;  &lt;p&gt;ADO.Net Data Services are a very thin wrapper around a DB, and as such, they should be treated as such. Do not expose them where you wouldn't want to expose your DB as well.&lt;/p&gt;&lt;img src="http://ayende.com/Blog/aggbug/10336.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ayende Rahien</dc:creator>
            <guid>http://ayende.com/Blog/archive/2008/07/21/ADO.Net-Data-Services-with-NHibernate.aspx</guid>
            <pubDate>Mon, 21 Jul 2008 11:23:03 GMT</pubDate>
            <wfw:comment>http://ayende.com/Blog/comments/10336.aspx</wfw:comment>
            <comments>http://ayende.com/Blog/archive/2008/07/21/ADO.Net-Data-Services-with-NHibernate.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://ayende.com/Blog/comments/commentRss/10336.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Linq for NHibernate Adventures</title>
            <link>http://ayende.com/Blog/archive/2008/02/16/Linq-for-NHibernate-Adventures.aspx</link>
            <description>&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font color="#000000"&gt;So for the last few hours I have been getting back into the Linq for NHibernate project, after having left it for far too long. I am beginning to think that building a Linq provider might not have been the best way to learn C# 3.0, but never mind that now.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;It is with great pride that I can tell you that the following query now works:&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;from&lt;/font&gt; e &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; db.Employees&lt;br /&gt;&lt;span style="color: #0000ff"&gt;select&lt;/span&gt; &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; { Name = e.FirstName + "&lt;span style="color: #8b0000"&gt; &lt;/span&gt;" + e.LastName, Phone = e.HomePhone }&lt;/p&gt; &lt;p&gt;Why is this trivial query important? Well, it is important because about a year ago I said that there is only a single feature in Linq for SQL that NHibernate doesn't have. I also promised to fix it the moment that someone would tell me what it is. No one did, so it waited until today. &lt;/p&gt;&lt;p&gt;The main issue had to do with the Criteria API and handling parameters, no one ever needed to do that, it seems. When they did, they generally used HQL, which did have this feature. Since I have based Linq for NHibernate on the Criteria API*, that was a problem. &lt;/p&gt;&lt;p&gt;Now that ReSharper works on C# 3.0, I can actually get things done there, so I sat down and implemented it. It is surprisingly difficult issue, but I threw enough code on it until it gave up (I wonder if there is a name for nested visitors... ). &lt;/p&gt;&lt;p&gt;At any rate, I strongly recommend that you'll take a look at the &lt;a href="https://rhino-tools.svn.sourceforge.net/svnroot/rhino-tools/experiments/NHibernate.Linq"&gt;project&lt;/a&gt;. And bug (fixes) and other patches are welcome**. &lt;/p&gt;&lt;p&gt;* This decision was important for two reasons, the first was that it is generally easier to use the Criteria API programmatically, and the second was that I wanted to ensure that the Crtieria API (which I favor) was a full featured as the HQL route. &lt;/p&gt;&lt;p&gt;** Yes, I know that I'll regret it.&lt;/p&gt;&lt;img src="http://ayende.com/Blog/aggbug/10054.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ayende Rahien</dc:creator>
            <guid>http://ayende.com/Blog/archive/2008/02/16/Linq-for-NHibernate-Adventures.aspx</guid>
            <pubDate>Sat, 16 Feb 2008 20:16:23 GMT</pubDate>
            <comments>http://ayende.com/Blog/archive/2008/02/16/Linq-for-NHibernate-Adventures.aspx#feedback</comments>
            <slash:comments>23</slash:comments>
            <wfw:commentRss>http://ayende.com/Blog/comments/commentRss/10054.aspx</wfw:commentRss>
        </item>
        <item>
            <title>The cost of inappropriate linqing</title>
            <link>http://ayende.com/Blog/archive/2007/12/04/The-cost-of-inappropriate-linqing.aspx</link>
            <description>&lt;p&gt;I read &lt;a href="http://jdconley.com/blog/archive/2007/11/28/linq-to-sql-surprise-performance-hit.aspx"&gt;this post&lt;/a&gt; with interest, apparently Linq for SQL is doing something odd, because I can't quite believe the results that this guy is getting. From the post:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;So I dug into the call graph a bit and found out the code causing by far the most damage was the creation of the LINQ query object for every call! The actual round trip to the database paled in comparison&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;I can't imagine what they are doing there to cause this performance characteristics.&lt;/p&gt; &lt;p&gt;From my own experiments with Linq, it should definitely not produce this amount of efforts.&lt;/p&gt;&lt;img src="http://ayende.com/Blog/aggbug/9912.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ayende Rahien</dc:creator>
            <guid>http://ayende.com/Blog/archive/2007/12/04/The-cost-of-inappropriate-linqing.aspx</guid>
            <pubDate>Tue, 04 Dec 2007 19:14:31 GMT</pubDate>
            <comments>http://ayende.com/Blog/archive/2007/12/04/The-cost-of-inappropriate-linqing.aspx#feedback</comments>
            <slash:comments>8</slash:comments>
            <wfw:commentRss>http://ayende.com/Blog/comments/commentRss/9912.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Awkward Testability for Linq for SQL</title>
            <link>http://ayende.com/Blog/archive/2007/08/16/Awkward-Testability-for-Linq-for-SQL.aspx</link>
            <description>&lt;blockquote&gt; &lt;p&gt;Note: I am writing this post in the express hope that it would help to change the current situation.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;I have been just recently informed about a significant problem with Linq for SQL. It doesn't support testing easily. You can see the &lt;a href="https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=282554"&gt;bug report&lt;/a&gt; here, and as usual, it was closed as Won't Fix without even providing an explanation. Did I mention already that I don't like Connect's approach to it? Yes, &lt;a href="http://www.ayende.com/Blog/archive/2007/07/29/How-to-kill-the-community-feedback-or-the-uselessness-of.aspx"&gt;I did&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;The root problem is a fairly simple one. Linq for SQL relies on reams of generated code, which means that if I have code line this:&lt;/p&gt; &lt;blockquote&gt;&lt;/blockquote&gt; &lt;blockquote&gt;&lt;pre&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt; customers = &lt;font color="#0000ff"&gt;from&lt;/font&gt; c &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; context.Customers 
  &lt;font color="#0000ff"&gt;select&lt;/font&gt; c;&lt;/pre&gt;&lt;/blockquote&gt;
&lt;p&gt;Then I have no really easy way to mock what is going on in here. The generated code provides a concrete class without an interface, so it is very hard to mock, and naturally, System.Data.Linq.Table&amp;lt;T&amp;gt; is sealed, has internal stuff, and is utterly hostile to mocking.&lt;/p&gt;
&lt;p&gt;You &lt;em&gt;have&lt;/em&gt; to use mocking if you  want to use the code above without hitting the database, and this is a core part of the way a lot of people work. Linq for SQL doesn't take that into account.&lt;/p&gt;
&lt;p&gt;The requirement for mocking aren't really that onerous, we need and interface generated for the context class, and interface for Table&amp;lt;T&amp;gt; and that the generated code will default to using interfaces by default (Best Practices, anyone?).&lt;/p&gt;
&lt;p&gt;Having to write adapters classes is something that TDDers on the .Net platform has become very familiar with, because of the insistence of using untestable practices throughout the framework. I am fairly tired of that, and I would certainly like to be able to skip this tiring process for once.&lt;/p&gt;
&lt;p&gt;It is shocking to me that in this day and age the Linq for SQL team can still believe utterly ignore such practices and put hurdles in the path of easy testability. &lt;/p&gt;
&lt;p&gt;Are we back to demos vs. reality development?&lt;/p&gt;
&lt;p&gt;To finish, &lt;a href="https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=282554&amp;amp;wa=wsignin1.0"&gt;this bug&lt;/a&gt; has been closed, so it is not possible even to vote for it. At the very least, I would like to hear an explanation, and it had better not involved "lack of resources".&lt;/p&gt;&lt;img src="http://ayende.com/Blog/aggbug/9619.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ayende Rahien</dc:creator>
            <guid>http://ayende.com/Blog/archive/2007/08/16/Awkward-Testability-for-Linq-for-SQL.aspx</guid>
            <pubDate>Thu, 16 Aug 2007 04:54:57 GMT</pubDate>
            <comments>http://ayende.com/Blog/archive/2007/08/16/Awkward-Testability-for-Linq-for-SQL.aspx#feedback</comments>
            <slash:comments>15</slash:comments>
            <wfw:commentRss>http://ayende.com/Blog/comments/commentRss/9619.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Dreaming in Code: Multi Linq</title>
            <link>http://ayende.com/Blog/archive/2007/06/24/Dreaming-in-Code-Multi-Linq.aspx</link>
            <description>&lt;p&gt;I was asked how we will approach the same Multi Query approach with Linq integration, here are some thoughts about it.&lt;/p&gt;&lt;pre&gt;var posts = from post &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; data.Posts
            where post.User.Name == "&lt;span style="color: #8b0000"&gt;Ayende&lt;/span&gt;"
		orderby post.PublishedDate desc;
var postsCount = posts.Count();
posts.Skip(10).Take(15);

&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; LinqQueryBatch()
 .Add(posts)
 .Add(postsCount)
 .Execute();&lt;span style="color: #008000"&gt;//perform the query&lt;/span&gt;

&lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt;(Post p &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; posts)&lt;span style="color: #008000"&gt;//no query&lt;/span&gt;
{
  Console.WriteLine(p.ToString());
}
&lt;span style="color: #008000"&gt;//no query&lt;/span&gt;
Console.WriteLine("&lt;span style="color: #8b0000"&gt;Overall posts by Ayende: {0}&lt;/span&gt;", postsCount.Single() );&lt;/pre&gt;
&lt;p&gt;The LinqQueryBatch in this case doesn't need to pass delegates to process the results, it can modify the Linq Query directly, so trying to find the result will find the one that was already loaded when we executed the multi query.&lt;/p&gt;
&lt;p&gt;Again, this is something that I am merely thinking about, no concrete code created.&lt;/p&gt;&lt;img src="http://ayende.com/Blog/aggbug/9494.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ayende Rahien</dc:creator>
            <guid>http://ayende.com/Blog/archive/2007/06/24/Dreaming-in-Code-Multi-Linq.aspx</guid>
            <pubDate>Sun, 24 Jun 2007 06:04:15 GMT</pubDate>
            <comments>http://ayende.com/Blog/archive/2007/06/24/Dreaming-in-Code-Multi-Linq.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://ayende.com/Blog/comments/commentRss/9494.aspx</wfw:commentRss>
        </item>
        <item>
            <title>LINQ to SQL - Dynamically Constructing Queries - Um... No!</title>
            <link>http://ayende.com/Blog/archive/2007/04/24/LINQ-to-SQL--Dynamically-Constructing-Queries--Um.-No.aspx</link>
            <description>&lt;p&gt;    &lt;a href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/"&gt;Mike Taulty&lt;/a&gt; is talking about &lt;a href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2007/04/24/9240.aspx"&gt;constructing queries dynamically&lt;/a&gt; in Linq to SQL. Sorry, but my response to that is Yuck! Here is the code that he shows:&lt;/p&gt;&lt;div style="BORDER-RIGHT: #999999 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #999999 1px solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; BORDER-LEFT: #999999 1px solid; WIDTH: 100%; PADDING-TOP: 4px; BORDER-BOTTOM: #999999 1px solid; BACKGROUND-COLOR: #ffffe1"&gt;&lt;pre class="csharpcode"&gt;&lt;span style="COLOR: #000000"&gt;  NorthwindDataContext ctx = &lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; NorthwindDataContext(&lt;span style="COLOR: #848284"&gt;"server=.;database=northwind"&lt;/span&gt;);&lt;br /&gt;    &lt;br /&gt;       var query = from c &lt;span style="COLOR: #0000ff"&gt;in&lt;/span&gt; ctx.Customers&lt;br /&gt;                   where c.Country == &lt;span style="COLOR: #848284"&gt;"Germany"&lt;/span&gt;     &lt;br /&gt;                   select c;&lt;br /&gt;    &lt;br /&gt;       &lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt; (RuntimeCriterionOneApplies()) &lt;br /&gt;       {&lt;br /&gt;        query = from c &lt;span style="COLOR: #0000ff"&gt;in&lt;/span&gt; query&lt;br /&gt;                where c.City == &lt;span style="COLOR: #848284"&gt;"Berlin"&lt;/span&gt;     &lt;br /&gt;                select c;&lt;br /&gt;       }&lt;br /&gt;    &lt;br /&gt;       &lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt; (RuntimeCriterionTwoApplies())&lt;br /&gt;       {&lt;br /&gt;        query = from c &lt;span style="COLOR: #0000ff"&gt;in&lt;/span&gt; query&lt;br /&gt;                where c.Orders.Sum(o =&amp;gt; o.Freight) &amp;gt; 100&lt;br /&gt;                select c;&lt;br /&gt;       }&lt;br /&gt;    &lt;br /&gt;       &lt;span style="COLOR: #0000ff"&gt;foreach&lt;/span&gt; (Customer c &lt;span style="COLOR: #0000ff"&gt;in&lt;/span&gt; query)&lt;br /&gt;       {&lt;br /&gt;        Console.WriteLine(c.CustomerID);&lt;br /&gt;       }&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;    &lt;strike&gt;This is not &lt;em&gt;constructing&lt;/em&gt; queries dynamically, it is &lt;em&gt;choosing &lt;/em&gt;a query dynamically. This isn't what &lt;em&gt;&lt;strong&gt;I&lt;/strong&gt; &lt;/em&gt;talk about when I am talking about constructing a query dynamically. You can look &lt;/strike&gt;&lt;a href="http://www.ayende.com/Blog/archive/7055.aspx"&gt;&lt;strike&gt;here&lt;/strike&gt;&lt;/a&gt;&lt;strike&gt; as what I consider a complex query that is being constructed dynamically.&lt;/strike&gt;&lt;/p&gt;&lt;p&gt;    &lt;strike&gt;Mike, how would you handle &lt;em&gt;that&lt;/em&gt; scenario in Linq?&lt;/strike&gt;&lt;/p&gt;&lt;p&gt;    &lt;strong&gt;Update&lt;/strong&gt;:  I really should pay more attention when I am reading the code. Sorry Mike, the code that you have will work for the scenario that I have. I don't think that the syntax is very elegant for this scenario, but it will work. I missed the "from q in &lt;strong&gt;query&lt;/strong&gt;" and read is as if a new query were constructed in each if. &lt;/p&gt;&lt;img src="http://ayende.com/Blog/aggbug/9227.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ayende Rahien</dc:creator>
            <guid>http://ayende.com/Blog/archive/2007/04/24/LINQ-to-SQL--Dynamically-Constructing-Queries--Um.-No.aspx</guid>
            <pubDate>Tue, 24 Apr 2007 09:48:27 GMT</pubDate>
            <comments>http://ayende.com/Blog/archive/2007/04/24/LINQ-to-SQL--Dynamically-Constructing-Queries--Um.-No.aspx#feedback</comments>
            <slash:comments>8</slash:comments>
            <wfw:commentRss>http://ayende.com/Blog/comments/commentRss/9227.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Linq for NHibernate: Functions</title>
            <link>http://ayende.com/Blog/archive/2007/04/14/Linq-for-NHibernate-Functions.aspx</link>
            <description>&lt;p&gt;    &lt;a href="http://blogs.magiconsoftware.com/blogs/bdiaz/"&gt;Bobby Diaz&lt;/a&gt; is &lt;em&gt;still&lt;/em&gt; producing some &lt;a href="http://blogs.magiconsoftware.com/blogs/bdiaz/archive/2007/04/13/linq-query-samples-1.aspx"&gt;amazing stuff&lt;/a&gt;. The new addition is native support for SQL functions. Take a look at this code:&lt;/p&gt;&lt;div style="BORDER-RIGHT: #999999 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #999999 1px solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; BORDER-LEFT: #999999 1px solid; WIDTH: 100%; PADDING-TOP: 4px; BORDER-BOTTOM: #999999 1px solid; BACKGROUND-COLOR: #ffffe1"&gt;&lt;font color="#2b91af"&gt;DateTime&lt;/font&gt;&lt;font size="2"&gt; date = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;DateTime&lt;/font&gt;&lt;font size="2"&gt;(1960, 1, 1);&lt;br /&gt;    &lt;br /&gt;    &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;var&lt;/font&gt;&lt;font size="2"&gt; query = ( &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;from&lt;/font&gt;&lt;font size="2"&gt; e &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;in&lt;/font&gt;&lt;font size="2"&gt; db.Employees&lt;br /&gt;    &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#808080"&gt;                   &lt;/font&gt;where&lt;/font&gt;&lt;font size="2"&gt; &lt;strong&gt;db.Methods.Year(&lt;/strong&gt;e.BirthDate&lt;strong&gt;)&lt;/strong&gt; &amp;gt;= date.Year &amp;amp;&amp;amp; &lt;strong&gt;db.Methods.Len(&lt;/strong&gt;e.FirstName&lt;strong&gt;)&lt;/strong&gt; &amp;gt; 4&lt;br /&gt;    &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#808080"&gt;                   &lt;/font&gt;select&lt;/font&gt;&lt;font size="2"&gt; e.FirstName )&lt;br /&gt;    &lt;font color="#808080"&gt;                   &lt;/font&gt;.Aggregate(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;StringBuilder&lt;/font&gt;&lt;font size="2"&gt;(), (sb, name) =&amp;gt; sb.Length &amp;gt; 0 ? sb.Append(&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;", "&lt;/font&gt;&lt;font size="2"&gt;).Append(name) : sb.Append(name));&lt;br /&gt;    &lt;br /&gt;    &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;Console&lt;/font&gt;&lt;font size="2"&gt;.WriteLine(&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;"Birthdays after {0}:"&lt;/font&gt;&lt;font size="2"&gt;, date.ToString(&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;"yyyy"&lt;/font&gt;&lt;font size="2"&gt;));&lt;br /&gt;    &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;Console&lt;/font&gt;&lt;font size="2"&gt;.WriteLine(query);&lt;/font&gt;&lt;/div&gt;&lt;p&gt;    Check out &lt;a href="http://blogs.magiconsoftware.com/blogs/bdiaz/archive/2007/04/13/linq-query-samples-1.aspx"&gt;Bobby's post&lt;/a&gt; for the full details. I am going to write a full overview of the current state of Linq for NHibernate soon. The situation so far is looking very nice.&lt;/p&gt;&lt;img src="http://ayende.com/Blog/aggbug/9205.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ayende Rahien</dc:creator>
            <guid>http://ayende.com/Blog/archive/2007/04/14/Linq-for-NHibernate-Functions.aspx</guid>
            <pubDate>Fri, 13 Apr 2007 23:19:20 GMT</pubDate>
            <comments>http://ayende.com/Blog/archive/2007/04/14/Linq-for-NHibernate-Functions.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://ayende.com/Blog/comments/commentRss/9205.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Linq For NHibernate: More Implementation Details</title>
            <link>http://ayende.com/Blog/archive/2007/04/05/Linq-For-NHibernate-More-Implementation-Details.aspx</link>
            <description>&lt;p&gt;    &lt;a href="http://blogs.magiconsoftware.com/blogs/bdiaz/"&gt;Bobby Diaz&lt;/a&gt; did some more work recently, and has documented it &lt;a href="http://blogs.magiconsoftware.com/blogs/bdiaz/archive/2007/04/03/implementing-linq-for-nhibernate-part-3-aggregate-and-element-operators.aspx"&gt;here&lt;/a&gt;. Interesting reading...&lt;/p&gt;&lt;img src="http://ayende.com/Blog/aggbug/9188.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ayende Rahien</dc:creator>
            <guid>http://ayende.com/Blog/archive/2007/04/05/Linq-For-NHibernate-More-Implementation-Details.aspx</guid>
            <pubDate>Thu, 05 Apr 2007 02:05:47 GMT</pubDate>
            <comments>http://ayende.com/Blog/archive/2007/04/05/Linq-For-NHibernate-More-Implementation-Details.aspx#feedback</comments>
            <wfw:commentRss>http://ayende.com/Blog/comments/commentRss/9188.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Linq for NHibernate Updates: Adding a new committer</title>
            <link>http://ayende.com/Blog/archive/2007/03/27/Linq-for-NHibernate-Updates-Adding-a-new-committer.aspx</link>
            <description>&lt;p&gt;    Following several good &lt;a href="http://blogs.magiconsoftware.com/blogs/bdiaz/archive/2007/03/25/linq-for-nhibernate.aspx"&gt;patches&lt;/a&gt;, I have added &lt;a href="http://blogs.magiconsoftware.com/blogs/bdiaz/"&gt;Bobby Diaz&lt;/a&gt; to the Rhino Tools project, which currently includes the Linq for NHibernate implementation as well. I expect that the new stuff will be up in the repository shortly.&lt;/p&gt;&lt;p&gt;    Just to remind you, I am still looking for more volunteers to help with the implementation, so if you are into futuristic technologies, just dive right into the &lt;a href="https://rhino-tools.svn.sourceforge.net/svnroot/rhino-tools/experiments/NHibernate.Linq/"&gt;code&lt;/a&gt; and the &lt;a href="http://ayende.com/Blog/archive/2007/03/17/Implementing-Linq-for-NHibernate-A-How-To-Guide--Part.aspx"&gt;implementation details&lt;/a&gt;. And be sure to send me (or Bobby) a patch or two.&lt;/p&gt;&lt;img src="http://ayende.com/Blog/aggbug/9157.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ayende Rahien</dc:creator>
            <guid>http://ayende.com/Blog/archive/2007/03/27/Linq-for-NHibernate-Updates-Adding-a-new-committer.aspx</guid>
            <pubDate>Tue, 27 Mar 2007 18:32:49 GMT</pubDate>
            <comments>http://ayende.com/Blog/archive/2007/03/27/Linq-for-NHibernate-Updates-Adding-a-new-committer.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://ayende.com/Blog/comments/commentRss/9157.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Linq For NHibernate: Orderring and Paging</title>
            <link>http://ayende.com/Blog/archive/2007/03/20/Linq-For-NHibernate-Orderring-and-Paging.aspx</link>
            <description>&lt;p&gt;    Bobby Diaz has implemented orderring and paging support for Linq to NHibernate, so this works:&lt;/p&gt;&lt;div style="BORDER-RIGHT: #999999 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #999999 1px solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; BORDER-LEFT: #999999 1px solid; WIDTH: 100%; PADDING-TOP: 4px; BORDER-BOTTOM: #999999 1px solid; BACKGROUND-COLOR: #ffffe1"&gt;    &lt;p&gt;        (&lt;font color="blue"&gt;from &lt;/font&gt;c &lt;font color="blue"&gt;in&lt;/font&gt; nwnd.Customers &lt;font color="blue"&gt;select&lt;/font&gt; c.CustomerID)&lt;br /&gt;                .Skip(10).Take(10).ToList();    &lt;/p&gt;&lt;/div&gt;&lt;p&gt;    As well as this:&lt;/p&gt;&lt;div style="BORDER-RIGHT: #999999 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #999999 1px solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; BORDER-LEFT: #999999 1px solid; WIDTH: 100%; PADDING-TOP: 4px; BORDER-BOTTOM: #999999 1px solid; BACKGROUND-COLOR: #ffffe1"&gt;&lt;font color="blue"&gt;var &lt;/font&gt;query = &lt;font color="blue"&gt;from&lt;/font&gt; c &lt;font color="blue"&gt;in&lt;/font&gt; nwnd.Customers&lt;br /&gt;       &lt;font color="blue"&gt;where&lt;/font&gt; c.Country == "Belgium"&lt;br /&gt;       &lt;font color="blue"&gt;orderby&lt;/font&gt; c.Country &lt;font color="blue"&gt;descending&lt;/font&gt;, c.City &lt;font color="blue"&gt;descending&lt;/font&gt;    &lt;br /&gt;       &lt;font color="blue"&gt;select&lt;/font&gt; c.City;&lt;/div&gt;&lt;p&gt;    Thanks again, Bobby, and the new code is on SVN.&lt;/p&gt;&lt;img src="http://ayende.com/Blog/aggbug/9137.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ayende Rahien</dc:creator>
            <guid>http://ayende.com/Blog/archive/2007/03/20/Linq-For-NHibernate-Orderring-and-Paging.aspx</guid>
            <pubDate>Tue, 20 Mar 2007 07:55:02 GMT</pubDate>
            <comments>http://ayende.com/Blog/archive/2007/03/20/Linq-For-NHibernate-Orderring-and-Paging.aspx#feedback</comments>
            <slash:comments>5</slash:comments>
            <wfw:commentRss>http://ayende.com/Blog/comments/commentRss/9137.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>