![]() |
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 Google Cloud Storage 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 Google Cloud Storage Entity Framework 6 assembly and the connection string.
You can connect without setting any connection properties for your user credentials. After setting InitiateOAuth to GETANDREFRESH, you are ready to connect.
When you connect, the Google Cloud Storage OAuth endpoint opens in your default browser. Log in and grant permissions, then the OAuth process completes
Service accounts have silent authentication, without user authentication in the browser. You can also use a service account to delegate enterprise-wide access scopes.
You need to create an OAuth application in this flow. See the Help documentation for more information. After setting the following connection properties, you are ready to connect:
The OAuth flow for a service account then completes.
<configuration> ... <connectionStrings> <add name="GoogleCloudStorageContext" connectionString="Offline=False;ProjectId='project1';InitiateOAuth=GETANDREFRESH;" providerName="System.Data.CData.GoogleCloudStorage" /> </connectionStrings> <entityFramework> <providers> ... <provider invariantName="System.Data.CData.GoogleCloudStorage" type="System.Data.CData.GoogleCloudStorage.GoogleCloudStorageProviderServices, System.Data.CData.GoogleCloudStorage.Entities.EF6" /> </providers> <entityFramework> </configuration> </code>
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Entity.ModelConfiguration.Conventions;
class GoogleCloudStorageContext : DbContext {
public GoogleCloudStorageContext() { }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// To remove the requests to the Migration History table
Database.SetInitializer<GoogleCloudStorageContext>(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("Buckets")]
public class Buckets {
[System.ComponentModel.DataAnnotations.Key]
public System.String Name { get; set; }
public System.String OwnerId { get; set; }
}
public DbSet<Buckets> Buckets { set; get; }
GoogleCloudStorageContext context = new GoogleCloudStorageContext(); context.Configuration.UseDatabaseNullSemantics = true; var query = from line in context.Buckets select line;
Download a free trial of the Google Cloud Storage Data Provider to get started:
Download NowLearn more:
👁 Google Cloud Storage IconRapidly create and deploy powerful .NET applications that integrate with Google Cloud Storage.