![]() |
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 SAP Business Warehouse 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 SAP Business Warehouse Entity Framework 6 assembly and the connection string.
To connect to SAP Business Warehouse, set the URL property to a valid SAP Business Warehouse server base URL. The driver must connect to SAP Business Warehouse instances hosted over HTTP with XMLA access.
The driver supports the following authentication schemes via the AuthScheme property:
By default, the driver attempts to negotiate SSL/TLS by checking the server's certificate against the system's trusted certificate store. To specify another certificate, see the SSLServerCert property for the available formats.
<configuration> ... <connectionStrings> <add name="SAPBusinessWarehouseContext" connectionString="Offline=False;URL=https://mysapserver:8000;AuthScheme=Basic;User=username;Password=password;" providerName="System.Data.CData.SAPBusinessWarehouse" /> </connectionStrings> <entityFramework> <providers> ... <provider invariantName="System.Data.CData.SAPBusinessWarehouse" type="System.Data.CData.SAPBusinessWarehouse.SAPBusinessWarehouseProviderServices, System.Data.CData.SAPBusinessWarehouse.Entities.EF6" /> </providers> <entityFramework> </configuration> </code>
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Entity.ModelConfiguration.Conventions;
class SAPBusinessWarehouseContext : DbContext {
public SAPBusinessWarehouseContext() { }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// To remove the requests to the Migration History table
Database.SetInitializer<SAPBusinessWarehouseContext>(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("Sales")]
public class Sales {
[System.ComponentModel.DataAnnotations.Key]
public System.String CustomerCount { get; set; }
public System.String City { get; set; }
}
public DbSet<Sales> Sales { set; get; }
SAPBusinessWarehouseContext context = new SAPBusinessWarehouseContext(); context.Configuration.UseDatabaseNullSemantics = true; var query = from line in context.Sales select line;
Download a free trial of the SAP Business Warehouse Data Provider to get started:
Download NowLearn more:
👁 SAP Business Warehouse IconRapidly create and deploy powerful .NET applications that integrate with SAP Business Warehouse.