![]() |
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 Sage Intacct data through the CData ADO.NET Provider, providing you with more flexibility and control.
CData provides the easiest way to access and integrate live data from Sage Intact. Customers use CData connectivity to:
Users frequently integrate Sage Intact with analytics tools such as Tableau, Power BI, and Excel, and leverage our tools to replicate Workday data to databases or data warehouses.
To learn about how other customers are using CData's Sage Intacct solutions, check out our blog: Drivers in Focus: Accounting Connectivity.
Modify the App.config file in the project to add a reference to the Sage Intacct Entity Framework 6 assembly and the connection string.
To connect using the Login method, the following connection properties are required: User, Password, CompanyId, SenderId and SenderPassword.
User, Password, and CompanyId are the credentials for the account you wish to connect to.
SenderId and SenderPassword are the Web Services credentials assigned to you by Sage Intacct.
<configuration> ... <connectionStrings> <add name="SageIntacctContext" connectionString="Offline=False;User=myusername;CompanyId=TestCompany;Password=mypassword;SenderId=Test;SenderPassword=abcde123;" providerName="System.Data.CData.SageIntacct" /> </connectionStrings> <entityFramework> <providers> ... <provider invariantName="System.Data.CData.SageIntacct" type="System.Data.CData.SageIntacct.SageIntacctProviderServices, System.Data.CData.SageIntacct.Entities.EF6" /> </providers> <entityFramework> </configuration> </code>
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Entity.ModelConfiguration.Conventions;
class SageIntacctContext : DbContext {
public SageIntacctContext() { }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// To remove the requests to the Migration History table
Database.SetInitializer<SageIntacctContext>(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("Customer")]
public class Customer {
[System.ComponentModel.DataAnnotations.Key]
public System.String Name { get; set; }
public System.String TotalDue { get; set; }
}
public DbSet<Customer> Customer { set; get; }
SageIntacctContext context = new SageIntacctContext(); context.Configuration.UseDatabaseNullSemantics = true; var query = from line in context.Customer select line;
Download a free trial of the Sage Intacct Data Provider to get started:
Download NowLearn more:
👁 Sage Intacct IconComplete read-write access to Sage Intacct enables developers to search (Contacts, Invoices, Transactions, Vendors, etc.), update items, edit customers, and more, from any .NET application.