As usual, the sample code included with the Entity Framework June 2007 CTP was written in C#. So I ported the basic elements of the C# EFJuneCTPSamples Web Site project to the VB EFJuneCTPwithVB ASP.NET Web Site (file system) project to determine if there were unexpected issues with VB 9.0.
Updated 7/6/2007: Added detail text and a GridView page populated by an ObjectQuery from an Entity SQL statement.
Note: John Papa's ADO.NET Entity Framework Overview in MSDN Magazine's July 2007 Data Points column provides a summary of EF features of the Orcas Beta 1 version.
LINQ to Entities ObjectQueries
The LINQGrid.aspx page executes a relatively simple LINQ to Entities ObjectQuery
Click images to display full-size versions
Notice that the GridView maps only String data to columns automatically but the CustomerID foreign-key value is missing. If you want to display foreign key values, you must obtain them from the primary key of the related entities. (There is a request pending to provide read-only access to foreign-key values so associated entities don't need to be loaded to obtain key values.) You can bind GridView columns to OrderDate, RequiredDate, ShippedDate and Freight properties manually. The Country value isn't passed as a parameter to keep the query expression simple.
The LINQText.aspx page has a more complex query with a specific projection and uses the Take(10) partition operator to display the last 10 orders from Mexico with a VB clone of the ObjectDumper utility.
References and Namespaces for LINQ to Entities Queries
The sample Web Site project adds references to System.Data.Entity.dll and System.Data.DataSetExtensions.dll in the \Program Files\Reference Assemblies\Microsoft\Framework\v3.5 folder. System.Data.Entity.dll contains all EF-specific namespaces.
Only the default Imports System.Linq directive from System.Core.dll is needed for ordinary queries.
Using Entity SQL Statements with ObjectQuery Objects
The following page demonstrates the current state of Entity SQL (eSQL) syntax for ObjectQuery. Use of the related Customer entity's Country property as the restriction is contrived because ShipCountry could have provided this information (although it might differ from the Customer.Country value.)
Note: For a short course on Entity SQL, read the ADO.NET Team's EntitySQL post of May 30, 2007 by Mark Shields and Fabio Valbuena. Mike Dodaro's Entity Data Model 101: Part 1 (January 30, 2007) and Entity Data Model 101 - Part 2 (February 12, 2007) explain the EDM.
The following page substitutes a simplified Entity SQL query for the LINQ to Entities expression to verify that the GridView control responds to the ObjectQuery identically.
The GridView is missing the same fields as the first example.
Namespaces for Entity SQL ObjectQuery Operations
In addition to the default Imports System.Linq directive used with LINQ to Entities queries, add Imports System.Data.EntityClient and Imports System.Data.Objects directives.