Skip to main content
A newer version of this page is available. .

GridViewExtension.BindToLINQ(String, String, EventHandler<LinqServerModeDataSourceSelectEventArgs>) Method

Binds the GridView to a queryable source in database server mode.

Namespace: DevExpress.Web.Mvc

Assembly: DevExpress.Web.Mvc5.v19.2.dll

Declaration

public GridViewExtension BindToLINQ(
    string contextTypeName,
    string tableName,
    EventHandler<LinqServerModeDataSourceSelectEventArgs> selectingMethod
)

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.

Returns

Type Description
GridViewExtension

A GridViewExtension object representing the GridView extension.

Remarks

Using the BindToLINQ method, you can easily bind the GridView to queryable data sources. Simply call the method, pass the DataContext and table name as method parameters, and specify the key field via the GridView’s GridSettingsBase.KeyFieldName property.

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

Note

The current BindToLINQ overload catches and conceals any exception thrown by an IQueryable provider. To catch these exceptions manually, use the BindToLINQ(string contextTypeName, string tableName, EventHandler<LinqServerModeDataSourceSelectEventArgs> selectingMethod, EventHandler<ServerModeExceptionThrownEventArgs> exceptionThrownMethod) overload method.

Example

Note

For a full example, refer to the How to bind GridView to XPO in Server Mode online example.

Html.DevExpress().GridView(
    settings => {
        settings.Name = "gvDataBindingToLinq";
        settings.CallbackRouteValues = new { Controller = "Home", Action = "GridViewPartial" };
        settings.KeyFieldName = "Oid";
        ...
        })
        .BindToLINQ("", "", new EventHandler<DevExpress.Data.Linq.LinqServerModeDataSourceSelectEventArgs>((s, e) => {
            e.KeyExpression = "Oid";
            DevExpress.Xpo.Session session = XpoHelper.GetNewSession();
            DevExpress.Xpo.XPQuery<MyObject> query = new DevExpress.Xpo.XPQuery<MyObject>(session);
            e.QueryableSource = query;
        }))
.Render();
See Also