Telerik blogs

Just before our upcoming release of Q1 2010 SP1 (early next week), I’ve decided to check how RadGridView for WPF will handle complex Entity Framework 4.0 query with almost 2 million records:

public class MyDataContext
{
    IQueryable _Data;
    public IQueryable Data
    {
        get
        {
            if (_Data == null)
            {
                var northwindEntities = new NorthwindEntities();
                var queryable = from o in northwindEntities.Orders
                               from od in northwindEntities.Order_Details
                                select new
                                {
                                    od.OrderID,
                                    od.ProductID,
                                    od.UnitPrice,
                                    od.Quantity,
                                    od.Discount,
                                    o.CustomerID,
                                    o.EmployeeID,
                                    o.OrderDate
                                };
                _Data = queryable.OrderBy(i => i.OrderID);
            }
 
            return _Data;
        }
    }
}


The grid is bound completely codeless in XAML using RadDataPager with PageSize set to 50:

<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
Title="MainWindow" mc:Ignorable="d" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:my="clr-namespace:WpfApplication1" xmlns:my1="clr-namespace:System;assembly=mscorlib">
<
Window.Resources>
<
my:MyDataContext x:Key="dataContext" />
</
Window.Resources>
<
Grid DataContext="{StaticResource dataContext}">
<
Grid.RowDefinitions>
<
RowDefinition />
<
RowDefinition Height="Auto" />
</
Grid.RowDefinitions>
<
telerik:RadGridView x:Name="RadGridView1" ItemsSource="{Binding Data}" />
<
telerik:RadDataPager PageSize="50" Source="{Binding Items,ElementName=RadGridView1}" Grid.Row="1"/>
</
Grid>
</
Window>

The result: Blazing fast sorting, paging, grouping and filtering of all data applied directly to the data-base server!

image

 


About the Author

Vladimir Enchev

is Director of Engineering, Native Mobile UI & Frameworks

Comments

Comments are disabled in preview mode.