
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.
ObjectQuery
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.
The preceding page displays the same fields as those of the WinForms test harness for LINQ to SQL performance tests in my earlier posts here and here.
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.)
ObjectQuery
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.
I have a question:
ReplyDeleteI am creating an eSql dynamically and returning DbDataRecord. Is it possible to bind this DbDataRecord to a WPF datagrid in any way ?
Do I know you? I am trying to achieve exactly the same thing. Creating eSql dynamically and returning List of DbDataRecords. If i bind it directly to a dataGrid, it gives me one column named FieldCount.
ReplyDeleteI haven't found a way to get the columns. Any solution?