Latest LINQ CTP released for download.

The list of goodies is here:

What’s new?

Enhanced DLinq Support: This CTP adds support for Inheritance, Stored Procedures, User-Defined Functions, and Optimistic Concurrency Conflict Resolution (OCCR).  The new DLinq Designer provides a visual design surface for creating DLinq entity classes from database tables.

LINQ over DataSet: The full power of LINQ can now be applied to the DataSet, allowing you to use the Standard Query Operators and some DataSet-specific extensions to query against DataRows.

“Group By” Query Comprehensions: The compiler now supports “Group By” as a valid clause in LINQ Queries. 

Outlining support for XML Literals in the Editor: In this release, we added outlining support for XML literals. You can now expand or collapse any Xml element literal that spans across more than one line. 

Value extension property for XML axis properties: We added a Value extension property to the collections that are returned from the XML axis properties (i.e. IEnumerable(Of XElement) and IEnumerable(Of XAttribute)). This extension property does two things, it first picks up the first object in that IEnumerable, and if this object exists, it calls the "Value" property on this object (either XElement or XAttribute). The following code show the use of this Value extension property:

       Dim contact = <Contact City="Seattle">

                         <Name>Joe</Name>

                      </Contact>

        Console.WriteLine(contact.@City.Value)

        contact.@City.Value = "Portland"

        Console.WriteLine(contact.@City.Value)

        Console.WriteLine(contact.<Name>.Value)

        contact.<Name>.Value = "Sam"

        Console.WriteLine(contact.<Name>.Value)

 

        Results:       

                Seattle

                Portland

                Joe

                Sam

Global Xml namespace support: XML namespaces that are declared using the Imports statement can now be used in the XML literals. The following is an example:

Imports ns = "http://www.w3.org/1999"

 

Module Module1

  Sub Main()

    Dim book = _

      <ns:Book>

              <ns:Title>Learning Programming Using VB</ns:Title>

             </ns:Book>

    Console.WriteLine(book.<ns:Title>.Value)

  End Sub

      End Module

What’s changed?

Select/From syntax: The previous tech preview supported using Select before From.  In an effort to provide better IntelliSense™, we’re switching to the From/Select format for this CTP.

Joins don’t require “It”:  You don’t need to use the iterator variable “it” anymore when performing a join operation, though it’s still required for grouping operations.

Xml axis properties syntax: The late bound Xml feature has a new name and a new distinct syntax where we wrap the element name with angle brackets. This new syntax makes the Xml axis properties visually distinct and solves problems that the previous CTP syntax had. See more information in this blog