[Expand]General Information
[Expand]WinForms Controls
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Collapse]WPF Controls
  Prerequisites
 [Expand]What's Installed
 [Expand]Common Concepts
 [Expand]MVVM Framework
 [Collapse]Controls and Libraries
   Reporting
  [Collapse]Data Grid
   [Expand]Getting Started
   [Expand]Implementation Details
   [Expand]Views
   [Expand]Grid View Data Layout
   [Expand]Binding to Data
   [Expand]Master-Detail Data Representation
   [Expand]Data Editing and Validation
   [Expand]Grouping
   [Expand]Selection
   [Expand]Filtering and Searching
   [Expand]Sorting
   [Expand]Data Summaries
   [Expand]Paging and Scrolling
   [Expand]Focus and Navigation
   [Expand]Conditional Formatting
   [Expand]Drag-and-Drop
   [Expand]Appearance Customization
   [Expand]MVVM Enhancements
   [Expand]Printing and Exporting
   [Expand]End-User Interaction
   [Expand]Miscellaneous
   [Expand]Performance Improvement
   [Expand]Design-Time Features
   [Expand]Visual Elements
   [Expand]End-User Capabilities
   [Collapse]Examples
    [Collapse]Binding to Data
      How to: Automatically Create Grid Columns
      How to: Bind a Grid to Data (eXpress Persistent Objects)
      How to: Bind a Grid to an MS Access Database
      How to: Bind a Grid to an XML File
      How to: Bind a Grid to an ICollectionView
      How to: Bind the GridControl to XPO
      How to: Apply Data Annotations
      How to: Post Changes to SQL Database
      How to: Display Unbound Data
      How to: Create a Master-Detail Grid
      How to: Bind Card Headers to Data
      How to: Customize Automatically Generated Columns
      How to: Bind the Grid to Columns and Summaries Specified in ViewModel
      How to: Create a Banded View
      How to: Display Data Which is Being Updated on Another Thread
      How to: Use DXGrid in Server Mode with Entity Framework 4.0+
      How to: Activate the Instant Feedback Mode for the Grid Bound to the Entity Framework 4.0 Classes
      How to: Implement the Instant Feedback Mode (XPO)
      How to: Parallelize Data-Intensive Operations On In-Memory Data in Instant Feedback UI Mode
      How to: Speed Up Performance When Using WCF Data Services (OData) in Instant Feedback Mode
    [Expand]Master-Detail
    [Expand]Hierarchical Data Presentation
    [Expand]Sorting, Grouping and Filtering
    [Expand]Calculating Summaries
    [Expand]Data Editing and Validation
    [Expand]Focus and Navigation
    [Expand]Drag-and-Drop
    [Expand]Styles and Templates
    [Expand]End-User Interaction
    [Expand]Miscellaneous
  [Expand]Ribbon, Bars and Menu
  [Expand]Charts Suite
  [Expand]Pivot Grid
  [Expand]Scheduler
  [Expand]Spreadsheet
  [Expand]Rich Text Editor
  [Expand]Tree List
  [Expand]Gauge Controls
  [Expand]Map Control
  [Expand]Layout Management
  [Expand]Windows Modern UI
  [Expand]Printing-Exporting
  [Expand]Data Editors
  [Expand]Navigation Controls
  [Expand]Spell Checker
  [Expand]Property Grid
  [Expand]PDF Viewer
  [Expand]TreeMap Control
  [Expand]Diagram Control
  [Expand]Windows and Utility Controls
   Dialogs, Notifications and Panels
  [Expand]Scheduler (legacy)
 [Expand]Scaffolding Wizard
 [Expand]Localization
  Redistribution and Deployment
  Get More Help
 [Expand]API Reference
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Office File API
[Expand]Reporting
[Expand]Report and Dashboard Server
[Expand]Dashboard
[Expand]eXpressApp Framework
[Expand]CodeRush
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation

How to: Speed Up Performance When Using WCF Data Services (OData) in Instant Feedback Mode

The DXGrid can load data from a SQL Server Database, using WCF Data Services, that implements the Open Data Protocol (OData). To load and manage data (group, sort, filter, calculate summary, etc.), DXGrid uses System.Data.Services.Client.DataServiceQuery that implements the System.Linq.IQueryable interface. Queries are first evaluated on the client, and then a URI-based query is generated and sent to the data service. However, the URI syntax used by OData data services supports only six query operators: Select, Where, OrderBy, ThenBy, Skip and Take. Due to this limitation, DXGrid cannot retrieve required data (e.g., unique column values, evaluated summaries, group info, etc.) from a SQL Server Database in a single query. Instead, DXGrid sends multiple queries. This dramatically slows down the client application's performance.

To avoid this performance decrease, do the following.

  • For each ObjectSet<TEntity> type property in the System.Data.Objects.ObjectContext descendant, implement a data service method that calls an auxiliary DevExpress method. Use the following name syntax: GetPropertyNameExtendedData. For example, the corresponding method for the Orders property should be GetOrdersExtendedData.
  • Apply [WebGet(UriTemplate = "GetOrdersExtendedData?extendedDataInfo={extendedDataInfo}")] attribute to the data service method.
  • Set the access rights on a service operation when the service is being initialized.
  • Enable the WcfInstantFeedbackDataSource.UseExtendedDataQuery option.

Expanded Example

Expanded Limitation

A string parameter passed to a data service method that obtains extended data has the maximum allowed length that is defined by a browser (e.g., for IE it is 2083 symbols) and a web server. If the parameter's length exceeds the maximum allowed width, a data query cannot be extended and an exception is thrown.

Is this topic helpful?​​​​​​​