Entity Framework 4.0+ Server Mode
- 2 minutes to read
This document shows you how to generate model and mapping information, create queries that access data and bind the query results to the DXGrid control enabling Server Mode.
Requirements
- The Entity Framework 4.0+
Creating a Storage Model and Mapping Information
Add the ADO.NET Entity Data Model item template, and configure it using the Entity Data Model Wizard.
Step 1
Step 2
Step 3
Step 4
Step 5
Binding to DXGrid and Implementing Data Updates
Create a new instance of the EntityServerModeSource class. Specify the type of objects retrieved from a data source, the key expression and queryable source. Finally, bind the DXGrid control to EntityServerModeSource.
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<dxg:GridControl Name="grid" AutoPopulateColumns="True">
<dxg:GridControl.View>
<dxg:TableView />
</dxg:GridControl.View>
</dxg:GridControl>
</Grid>
public MainWindow() {
InitializeComponent();
grid.ItemsSource = new EntityServerModeSource() {
KeyExpression = "ProductID",
QueryableSource = new NorthwindEntities().Products
};
}
Entity Framework Server Mode Limitations
- Entity Framework 4.0+: The maximum allowed number of total or group summaries is 14.
- Server Mode Limitations
Compatibility issues with Entity Framework 6.0 and Entity Framework Server Mode Collections.
Breaking changes introduced in Entity Framework 6.0 caused compatibility issues with Entity Framework Server Mode collections (EntityServerModeDataSource, EntityInstantFeedbackDataSource). Below is the list of limitations.
- Filtering via the Automatic Filter Row against numeric columns is not supported.
- Searching via the Search Panel against numeric columns is not supported.
- Incremental searching against numeric columns is not supported.
The following column group intervals are not supported:
- Date
- DateMonth
- DateRange
- DateYear
- Default (for DateTime columns)
- A numeric column as display member of the look-up editor is not supported.
The following function operators are not supported in filters and unbound columns.
- ToStr (if the parameter is an operand property referencing a numeric column)
- AddDays
- AddHours
- AddMilliSeconds
- AddMinutes
- AddMonths
- AddSeconds
- AddYears
- DateDiffDay
- DateDiffHour
- DateDiffMilliSecond
- DateDiffMinute
- DateDiffMonth
- DateDiffSecond
- DateDiffYear
- GetDate
- The Like binary operator is not supported.
To resolve problems with these limitations, execute the following code in your application’s entry point.
EF 6.0 only:
CriteriaToEFExpressionConverter.EntityFunctionsType = typeof(System.Data.Entity.Core.Objects.EntityFunctions);
CriteriaToEFExpressionConverter.SqlFunctionsType = typeof(System.Data.Entity.SqlServer.SqlFunctions);
In Entity Framework 6.1, the System.Data.Entity.Core.Objects.EntityFunctions is obsolete, and the System.Data.Entity.DbFunctions class should be used.
CriteriaToEFExpressionConverter.EntityFunctionsType = typeof(System.Data.Entity.DbFunctions);
CriteriaToEFExpressionConverter.SqlFunctionsType = typeof(System.Data.Entity.SqlServer.SqlFunctions);