![]() |
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 QuickBooks Time 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 QuickBooks Time Entity Framework 6 assembly and the connection string.
TSheets uses the OAuth2 standard for authentication and authorization. To construct your own OAuth app and connect to data, refer to OAuth section in the Help.
<configuration> ... <connectionStrings> <add name="TSheetsContext" connectionString="Offline=False;OAuthClientId=myclientid;OAuthClientSecret=myclientsecret;CallbackUrl=http://localhost:33333;InitiateOAuth=GETANDREFRESH;" providerName="System.Data.CData.TSheets" /> </connectionStrings> <entityFramework> <providers> ... <provider invariantName="System.Data.CData.TSheets" type="System.Data.CData.TSheets.TSheetsProviderServices, System.Data.CData.TSheets.Entities.EF6" /> </providers> <entityFramework> </configuration> </code>
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Entity.ModelConfiguration.Conventions;
class TSheetsContext : DbContext {
public TSheetsContext() { }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// To remove the requests to the Migration History table
Database.SetInitializer<TSheetsContext>(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("Timesheets")]
public class Timesheets {
[System.ComponentModel.DataAnnotations.Key]
public System.String Id { get; set; }
public System.String JobcodeId { get; set; }
}
public DbSet<Timesheets> Timesheets { set; get; }
TSheetsContext context = new TSheetsContext(); context.Configuration.UseDatabaseNullSemantics = true; var query = from line in context.Timesheets select line;
Download a free trial of the QuickBooks Time Data Provider to get started:
Download NowLearn more:
👁 QuickBooks Time IconRapidly create and deploy powerful .NET applications that integrate with QuickBooks Time.