![]() |
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 NetSuite 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 Oracle NetSuite. Customers use CData connectivity to:
Customers use CData solutions to access live NetSuite data from their preferred analytics tools, Power BI and Excel. They also use CData's solutions to integrate their NetSuite data into comprehensive databases and data warehouse using CData Sync directly or leveraging CData's compatibility with other applications like Azure Data Factory. CData also helps Oracle NetSuite customers easily write apps that can pull data from and push data to NetSuite, allowing organizations to integrate data from other sources with NetSuite.
For more information about our Oracle NetSuite solutions, read our blog: Drivers in Focus Part 2: Replicating and Consolidating ... NetSuite Accounting Data.
Modify the App.config file in the project to add a reference to the NetSuite Entity Framework 6 assembly and the connection string.
The User and Password properties, under the Authentication section, must be set to valid NetSuite user credentials. In addition, the AccountId must be set to the ID of a company account that can be used by the specified User. The RoleId can be optionally specified to log in the user with limited permissions.
See the "Getting Started" chapter of the help documentation for more information on connecting to NetSuite.
<configuration> ... <connectionStrings> <add name="NetSuiteContext" connectionString="Offline=False;Account Id=XABC123456;Password=password;User=user;Role Id=3;Version=2013_1;" providerName="System.Data.CData.NetSuite" /> </connectionStrings> <entityFramework> <providers> ... <provider invariantName="System.Data.CData.NetSuite" type="System.Data.CData.NetSuite.NetSuiteProviderServices, System.Data.CData.NetSuite.Entities.EF6" /> </providers> <entityFramework> </configuration> </code>
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Entity.ModelConfiguration.Conventions;
class NetSuiteContext : DbContext {
public NetSuiteContext() { }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// To remove the requests to the Migration History table
Database.SetInitializer<NetSuiteContext>(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("SalesOrder")]
public class SalesOrder {
[System.ComponentModel.DataAnnotations.Key]
public System.String CustomerName { get; set; }
public System.String SalesOrderTotal { get; set; }
}
public DbSet<SalesOrder> SalesOrder { set; get; }
NetSuiteContext context = new NetSuiteContext(); context.Configuration.UseDatabaseNullSemantics = true; var query = from line in context.SalesOrder select line;
Download a free trial of the NetSuite Data Provider to get started:
Download NowLearn more:
👁 NetSuite IconRapidly create and deploy powerful .NET applications that integrate with NetSuite account data including Leads, Contacts, Opportunities, Accounts, and more!