VOOZH about

URL: https://www.cdata.com/kb/tech/certinia-ado-linqtoef.rst

⇱ LINQ to Certinia Data


LINQ to Certinia 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 Certinia Data Provider.

This article illustrates using LINQ to access tables within the Certinia via the CData ADO.NET Data Provider for Certinia. 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 Certinia Data Source".
  4. Enter your data source connection information.

    There are several authentication methods available for connecting to Certinia: login credentials, SSO, and OAuth.

    Authenticating with a Login and Token

    Set the User and Password to your login credentials. Additionally, set the SecurityToken. By default, the SecurityToken is required, but you can make it optional by allowing a range of trusted IP addresses.

    To disable the security token:

    1. Log in to Certinia and enter "Network Access" in the Quick Find box in the setup section.
    2. Add your IP address to the list of trusted IP addresses.

    To obtain the security token:

    1. Open the personal information page on certinia.com.
    2. Click the link to reset your security token. The token will be emailed to you.
    3. Specify the security token in the SecurityToken connection property or append it to the Password.

    Authenticating with OAuth

    If you do not have access to the user name and password or do not want to require them, use the OAuth user consent flow. See the OAuth section in the Help for an authentication guide.

    Connecting to Certinia Sandbox Accounts

    Set UseSandbox to true (false by default) to use a Certinia sandbox account. Ensure that you specify a sandbox user name in User.

    Below is a typical connection string:

    User=myUser;Password=myPassword;Security Token=myToken;InitiateOAuth=GETANDREFRESH;
  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 CertiniaEntities 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 , update, delete, and insert commands. For example:

CertiniaEntities context = new CertiniaEntities();

var accountQuery = from account in context.Account
 select account;

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

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