Query Result

This article is relevant to entity models that utilize the deprecated Visual Studio integration of Telerik Data Access. The current documentation of the Data Access framework is available here.

After a LINQ query is converted to command trees and executed, the query results are usually returned as one of the following:

  • A collection of zero or more typed objects or a projection of complex types in the domain model.
  • CLR types.
  • Anonymous types.

Anonymous type initialization is shown in the following example in query expression syntax:

using ( EntitiesModel dbContext = new EntitiesModel() )
{
   var query = from product in dbContext.Products
               where product.UnitPrice > 30
               select new
               {
                   Name = product.ProductName,
                   Price = product.UnitPrice
               };
   foreach ( var item in query )
   {
       Console.WriteLine( "Name: {0}, Price: {1}", item.Name, item.Price );
   }
}
Using dbContext As New EntitiesModel()
 Dim query = From product In dbContext.Products
             Where product.UnitPrice > 30
             Select New With {Key .Name = product.ProductName, Key .Price = product.UnitPrice}
 For Each item In query
  Console.WriteLine("Name: {0}, Price: {1}", item.Name, item.Price)
 Next item
End Using

User-defined class initialization is also supported. The following example in query expression syntax shows a custom class being initialized in the query:

public class MyProduct
{
   public string Name
   {
       get;
       set;
   }

   public decimal Price
   {
       get;
       set;
   }
}
Public Class MyProduct
 Public Property Name() As String
 Public Property Price() As Decimal
End Class

using ( EntitiesModel dbContext = new EntitiesModel() )
{
   var query = dbContext.Products.Where( p => p.UnitPrice > 30 ).
       Select(p => new MyProduct
       {
           Name = p.ProductName,
           Price = p.UnitPrice
       } );
   foreach ( var item in query )
   {
       Console.WriteLine( "Name: {0}, Price: {1}", item.Name, item.Price );
   }
}
Using dbContext As New EntitiesModel()
 Dim query = dbContext.Products.Where(Function(p) p.UnitPrice > 30).
       Select(Function(p) New MyProduct With {.Name = p.ProductName, .Price = p.UnitPrice})
 For Each item In query
  Console.WriteLine("Name: {0}, Price: {1}", item.Name, item.Price)
 Next item
End Using

See Also