LINQ to Linear Data

Jerod Johnson
Jerod Johnson
Director, Technology Evangelism
LINQ offers versatile querying capabilities within the .NET Framework (v3.0+), offering a straightforward method for programmatic data access through CData ADO.NET Data Providers. In this article, we demonstrate the use of LINQ to retrieve information from the Linear Data Provider.

This article illustrates using LINQ to access tables within the Linear via the CData ADO.NET Data Provider for Linear. To achieve this, we will use LINQ to Entity Framework, which facilitates the generation of connections and can be seamlessly employed with any CData ADO.NET Data Providers to access data through LINQ.

See the help documentation for a guide to setting up an EF 6 project to use the provider.

  1. In a new project in Visual Studio, right-click on the project and choose to add a new item. Add an ADO.NET Entity Data Model.
  2. Choose EF Designer from Database and click Next.
  3. Add a new Data Connection, and change your data source type to "CData Linear Data Source".
  4. Enter your data source connection information.

    You can authenticate to Linear with a personal API key or with OAuth 2.0. The API key is the simplest option for connecting with your own Linear account.

    Authenticating with an API Key

    Set the following connection properties:

    • AuthScheme: Set this to APIKey.
    • APIKey: A Linear personal API key.

    To create a personal API key, log in to Linear, open Settings > Security & access > Personal API keys, select New API key, and create it. Copy the key immediately, because Linear shows it only once.

    Authenticating with OAuth

    OAuth requires a custom OAuth application registered in Linear (Settings > API > OAuth applications), which provides the OAuthClientId and OAuthClientSecret. Two flows are supported:

    • Authorization code: Set AuthScheme to OAuth, InitiateOAuth to GETANDREFRESH, and provide OAuthClientId, OAuthClientSecret, and the CallbackURL defined in your application (e.g., http://localhost:33333). The driver opens Linear in your browser so you can grant access.
    • Client credentials: Set AuthScheme to OAuthClient and provide OAuthClientId and OAuthClientSecret. This authenticates the application itself, with no browser interaction, and suits machine-to-machine integrations.

    By default, the driver requests the read,write scopes. The driver refreshes the access token automatically when it expires.

    Below is a typical connection string:

    AuthScheme=APIKey;APIKey=myAPIKey;
  5. Required connection properties for the data source. (QuickBooks is shown.)
  6. If saving your entity connection to App.Config, set an entity name. In this example we are setting LinearEntities as our entity connection in App.Config.
  7. Enter a model name and select any tables or views you would like to include in the model.
The available tables in the underlying data source. (QuickBooks is shown.)

Using the entity you created, you can now perform select commands. For example:


LinearEntities context = new LinearEntities();

var teamQuery = from team in context.Team
  select team;

foreach (var result in teamQuery) {
  Console.WriteLine("{0} {1} ", result.Id, result.id);
}

See "LINQ and Entity Framework" chapter in the help documentation for example queries of the supported LINQ.

Ready to get started?

Download a free trial of the Linear Data Provider to get started:

 Download Now

Learn more:

Linear Icon Linear ADO.NET Provider

Rapidly create and deploy powerful .NET applications that integrate with Linear data including AgentSession, Comment, Customer, Cycle, Initiative, Integration, Issue, ProjectStatus, Release, Team, User, and more!