Working with Strava Data in LINQPad
The CData ADO.NET Provider for Strava enables you to use standard ADO.NET interfaces like LINQ and the Entity Framework to work with Strava data. This article will demonstrate the process of establishing a connection from LINQPad and executing LINQ queries.
Create the Data Model
After downloading and installing both the provider and LINQPad, create a new class library project within Visual Studio.
See the help documentation for a guide to setting up an EF 6 project to use the provider.
Right-click your project and click Add -> New Item -> ADO.NET Entity Data Model. In the resulting dialog, select Code First from database. Click New Connection and specify the connection string options in the resulting wizard.
To authenticate to Strava, and connect to your own data or to allow other users to connect to their data, you can use the OAuth standard.
Using OAuth Authentication
You must create a custom OAuth application to connect to Strava. To create a custom OAuth application:
- Log into the Strava API Settings page
- Create a new application or select an existing application
- Set the "Authorization Callback Domain" to your callback URL domain (e.g. localhost)
- Note down the Client ID and Client Secret
After setting the following connection properties, you are ready to connect:
- AuthScheme: Set this to OAuth.
- InitiateOAuth: Set this to GETANDREFRESH. You can use InitiateOAuth to manage the process to obtain the OAuthAccessToken.
- OAuthClientId: Set this to the Client ID from your Strava API application.
- OAuthClientSecret: Set this to the Client Secret from your Strava API application.
- CallbackURL: Set this to the redirect URI matching your application's callback domain.
Example connection string:
Profile=C:\profiles\Strava.apip;AuthScheme=OAuth;InitiateOAuth=GETANDREFRESH;OAuthClientId=your_client_id;OAuthClientSecret=your_client_secret;CallbackURL=http://localhost:33333;
Below is a typical connection string:
Profile=C:\profiles\Strava.apip;AuthScheme=OAuth;InitiateOAuth=GETANDREFRESH;OAuthClientId=your_client_id;OAuthClientSecret=your_client_secret;CallbackURL=http://localhost:33333;

Select the desired tables and views and click Finish to create the data model.

- Build the project. The generated files can be used to create the Strava connection in LINQPad.
Connect to Strava Data in LINQPad
After you have obtained the required connection properties and created the data model assembly, follow the steps below to start using the data model in LINQPad.
Open LINQPad and click Add Connection.
Select the "Use a typed data context from your own assembly" option.
Select Entity Framework DbContext.

Click Browse next to the Path to Custom Assembly box and browse to your project folder. Browse to the .dll or .exe under the bin folder.
- Select the name of the DbContext.
- If you saved your connection string in App.Config, specify the path to the App.config.
You can now query Strava data through LINQPad. For examples of the supported LINQ queries, see the "LINQ and Entity Framework" chapter in the help documentation.