Binding to LINQ to SQL Classes

  • 3 minutes to read

Follow the steps below to bind your data-aware control to data using the LINQ to SQL provider.

Prerequisites

Latest Visual Studio versions (for example, Visual Studio 2017) do not have required modules installed by default. For these versions, you have to install required tools manually. To do so, open Windows Start Menu and run "Visual Studio Installer".

LinqToSql - Launch Installer

Select "Modify" for the required Visual Studio installation, switch to "Individual components" tab and check the "LINQ to SQL tools" option.

LinqToSql - Install VS Tools

Click the "Modify" button to start the installation. After the IDE is updated, close the Installer.

Binding to LINQ to SQL Classes

  1. Open the Visual Studio Server Browser and right-click "Data Connections" to add a new connection.

    LinqToSql - Add Connection

  2. Invoke a Data Source Configuration Wizard and select the "LINQ to SQL" option.

  3. Click "New Data Source..." button and add a new "LINQ to SQL Classes" item to your project.

    LinqToSql - Add Source

    If LINQ to SQL tools are not installed, this button is hidden. To do so, install these tools manually as shown in the Prerequisites section.

    LinqToSql - No Component Installed

  4. Data classes are created and edited in an Object Relational Designer (O/R Designer). To create a data class, drag it from the Server Explorer onto the O/R Designer's surface.

    LinqToSql - OR Designer

  5. Rebuild the project and close the O/R Designer.
  6. Invoke a Data Source Configuration Wizard once again and select the "LINQ to SQL" option. This time the data source you have created is listed among available data sources. Select it and click "Next".
  7. Choose the required data binding mode.

    LinqToSql - Binding Mode

    • Direct Binding to Data Source - the data-aware control binds directly to the data source, without any go-between components.
    • Binding via the BindingSource Component - a new System.Windows.Forms.BindingSource component is created to transfer data to your data-aware control.
    • Asynchronous Server-Side Data Processing - the LinqInstantFeedbackSource component transfers data. The data-aware control operates in Instant Feedback Mode.
    • Server-Side Data Processing - the LinqServerModeSource component transfers data. The data-aware control operates in regular Server Mode.
    • Asynchronous Parallel In-Memory Data Processing - the PLinqInstantFeedbackSource component transfers data. The data-aware control operates in Instant Feedback Mode.
    • Parallel In-Memory Data Processing - the PLinqServerModeSource component transfers data. The data-aware control operates in regular Server Mode.
  8. The final wizard page allows you to sort your data descending or ascending by a selected data field.

    LinqToSql - Last Wizard Page

  9. Click "Finish" and rebuild the solution. Your data-aware control is now bound to LINQ-to-SQL classes.

Posting Data Back to the Data Source

Call the SubmitChanges method to save changes back to a data-aware control's underlying data source.


//direct binding
private void Form1_FormClosing(object sender, FormClosingEventArgs e) {
    (gridControl1.DataSource as Table<Order>).Context.SubmitChanges();
}

//binding with a BindingSource component
private void Form1_FormClosing(object sender, FormClosingEventArgs e) {
    (ordersBindingSource.DataSource as Table<Order>).Context.SubmitChanges();
}