VerticalGridExtension.BindToEF(String, String, EventHandler<LinqServerModeDataSourceSelectEventArgs>, EventHandler<ServerModeExceptionThrownEventArgs>) Method

Binds the VerticalGrid to a data source via the Entity Framework in database server mode.

Namespace: DevExpress.Web.Mvc

Assembly: DevExpress.Web.Mvc5.v21.1.dll

Declaration

public VerticalGridExtension BindToEF(
    string contextTypeName,
    string tableName,
    EventHandler<LinqServerModeDataSourceSelectEventArgs> selectingMethod,
    EventHandler<ServerModeExceptionThrownEventArgs> exceptionThrownMethod
)

Parameters

Name Type Description
contextTypeName String

A string representing the DataContext type name.

tableName String

A string specifying the table name.

selectingMethod EventHandler<LinqServerModeDataSourceSelectEventArgs>

A method to which selection logic is delegated.

exceptionThrownMethod EventHandler<ServerModeExceptionThrownEventArgs>

A delegate method that allows catching unhandled/CLR exceptions that appear.

Returns

Type Description
VerticalGridExtension

A VerticalGridExtension object representing the VerticalGrid extension.

Remarks

Using the BindToEF method, you can easily bind the VerticalGrid to Entity Framework data models. Simply call the method, pass the DataContext and table name as method parameters, and specify the key field via the VerticalGrid’s GridSettingsBase.KeyFieldName property.

Internally, the BindToEF method uses our EntityServerModeDataSource component, which was specifically designed to allow the VerticalGrid to efficiently process large amounts of data. The EntityServerModeDataSource component automatically enables database server mode to optimize the execution of all queries to the data context initiated by the VerticalGrid. In this mode, the VerticalGrid loads records on demand and performs data-aware operations (sorting, filtering, grouping, etc.) on the data server. This technique significantly improves the VerticalGrid’s speed and responsiveness.

Example

The code sample below demonstrates how to catch the internal exception thrown when using the database server mode data binding approach.

View code (Razor):

@Html.DevExpress().VerticalGrid(settings => {
    // VerticalGrid settings
}).BindToEF(string.Empty, string.Empty, (s, e) => {
    // Specify queryable source
    var dataContext = new MyProject.Models.LargeDatabaseDataContext();
    e.QueryableSource = dataContext.Emails;
    e.KeyExpression = "Id";
}, (s, e) => {
    // Handle internal exception
    ViewContext.Writer.Write(e.Exception.Message + Environment.NewLine + e.Exception.StackTrace);
}).GetHtml()
See Also