![]() |
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 AlloyDB 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 AlloyDB Entity Framework 6 assembly and the connection string.
The following connection properties are usually required in order to connect to AlloyDB.
You can also optionally set the following:
Standard authentication (using the user/password combination supplied earlier) is the default form of authentication.
No further action is required to leverage Standard Authentication to connect.
There are additional methods of authentication available which must be enabled in the pg_hba.conf file on the AlloyDB server.
Find instructions about authentication setup on the AlloyDB Server here.
This authentication method must be enabled by setting the auth-method in the pg_hba.conf file to md5.
This authentication method must be enabled by setting the auth-method in the pg_hba.conf file to scram-sha-256.
The authentication with Kerberos is initiated by AlloyDB Server when the ∏ is trying to connect to it. You should set up Kerberos on the AlloyDB Server to activate this authentication method. Once you have Kerberos authentication set up on the AlloyDB Server, see the Kerberos section of the help documentation for details on how to authenticate with Kerberos.
<configuration> ... <connectionStrings> <add name="AlloyDBContext" connectionString="Offline=False;User=alloydb;Password=admin;Database=alloydb;Server=127.0.0.1;Port=5432" providerName="System.Data.CData.AlloyDB" /> </connectionStrings> <entityFramework> <providers> ... <provider invariantName="System.Data.CData.AlloyDB" type="System.Data.CData.AlloyDB.AlloyDBProviderServices, System.Data.CData.AlloyDB.Entities.EF6" /> </providers> <entityFramework> </configuration> </code>
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Entity.ModelConfiguration.Conventions;
class AlloyDBContext : DbContext {
public AlloyDBContext() { }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// To remove the requests to the Migration History table
Database.SetInitializer<AlloyDBContext>(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("Orders")]
public class Orders {
[System.ComponentModel.DataAnnotations.Key]
public System.String ShipName { get; set; }
public System.String ShipCity { get; set; }
}
public DbSet<Orders> Orders { set; get; }
AlloyDBContext context = new AlloyDBContext(); context.Configuration.UseDatabaseNullSemantics = true; var query = from line in context.Orders select line;
Download a free trial of the AlloyDB Data Provider to get started:
Download NowLearn more:
👁 AlloyDB IconRapidly create and deploy powerful .NET applications that integrate with AlloyDB.