![]() |
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 Amazon S3 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 Amazon S3 Entity Framework 6 assembly and the connection string.
To authorize Amazon S3 requests, provide the credentials for an administrator account or for an IAM user with custom permissions. Set AccessKey to the access key Id. Set SecretKey to the secret access key.
Note: You can connect as the AWS account administrator, but it is recommended to use IAM user credentials to access AWS services.
For information on obtaining the credentials and other authentication methods, refer to the Getting Started section of the Help documentation.
<configuration> ... <connectionStrings> <add name="AmazonS3Context" connectionString="Offline=False;AccessKey=a123;SecretKey=s123;" providerName="System.Data.CData.AmazonS3" /> </connectionStrings> <entityFramework> <providers> ... <provider invariantName="System.Data.CData.AmazonS3" type="System.Data.CData.AmazonS3.AmazonS3ProviderServices, System.Data.CData.AmazonS3.Entities.EF6" /> </providers> <entityFramework> </configuration> </code>
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Entity.ModelConfiguration.Conventions;
class AmazonS3Context : DbContext {
public AmazonS3Context() { }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// To remove the requests to the Migration History table
Database.SetInitializer<AmazonS3Context>(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("ObjectsACL")]
public class ObjectsACL {
[System.ComponentModel.DataAnnotations.Key]
public System.String Name { get; set; }
public System.String OwnerId { get; set; }
}
public DbSet<ObjectsACL> ObjectsACL { set; get; }
AmazonS3Context context = new AmazonS3Context(); context.Configuration.UseDatabaseNullSemantics = true; var query = from line in context.ObjectsACL select line;
Download a free trial of the Amazon S3 Data Provider to get started:
Download NowLearn more:
👁 Amazon S3 IconRapidly create and deploy powerful .NET applications that integrate with Amazon S3 file storage data.