![]() |
VOOZH | about |
Microsoft Entity Framework serves as an object-relational mapping framework for working with data represented as objects. Although Visual Studio offers the ADO.NET Entity Data Model wizard to automatically generate the Entity Model, this model-first approach may present challenges when your data source undergoes changes or when you require greater control over entity operations. In this article, we will delve into the code-first approach for accessing Vercel data through the CData ADO.NET Provider, providing you with more flexibility and control.
Modify the App.config file in the project to add a reference to the Vercel Entity Framework 6 assembly and the connection string.
Vercel uses Bearer token authentication. You can use either a personal access token or an OAuth access token as the API key.
To obtain a personal access token:
After obtaining your token, set the following connection properties:
Profile=C:\profiles\Vercel.apip;AuthScheme=APIKey;APIKey=your_access_token;
Many Vercel resources are scoped to a team. To scope all requests to a specific team, set the TeamId connection property to your team's ID. You can find your team ID by querying the Teams table or from the Vercel dashboard. Alternatively, you can specify TeamId in your SQL queries using the WHERE clause where supported.
Once the authentication is configured, you can connect to Vercel and query data from any of the available tables such as Projects, Deployments, Teams, and Domains.
<configuration> ... <connectionStrings> <add name="APIContext" connectionString="Offline=False;Profile=C:\profiles\Vercel.apip;AuthScheme=APIKey;APIKey=your_access_token;" providerName="System.Data.CData.API" /> </connectionStrings> <entityFramework> <providers> ... <provider invariantName="System.Data.CData.API" type="System.Data.CData.API.APIProviderServices, System.Data.CData.API.Entities.EF6" /> </providers> <entityFramework> </configuration> </code>
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Entity.ModelConfiguration.Conventions;
class APIContext : DbContext {
public APIContext() { }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// To remove the requests to the Migration History table
Database.SetInitializer<APIContext>(null);
// To remove the plural names
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
}
using System.Data.Entity.ModelConfiguration;
using System.ComponentModel.DataAnnotations.Schema;
[System.ComponentModel.DataAnnotations.Schema.Table("User")]
public class User {
[System.ComponentModel.DataAnnotations.Key]
public System.String { get; set; }
public System.String { get; set; }
}
public DbSet<User> User { set; get; }
APIContext context = new APIContext(); context.Configuration.UseDatabaseNullSemantics = true; var query = from line in context.User select line;
Connect to live data from Vercel with the API Driver
Connect to Vercel