各製品の資料を入手。
詳細はこちら →CData
こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。
Entity Framework はobject-relational mapping フレームワークで、データをオブジェクトとして扱うために使われます。Visual Studio のADO.NET Entity Data Model ウィザードを実行するとEntity Model を作成できますが、このモデルファーストアプローチでは、データソースに変更があった場合やエンティティ操作をより制御したい場合は不都合があります。この記事では、CData ADO.NET Provider を使いコードファーストアプローチでSalesforce Marketing にアクセスします。
Salesforce Marketing Cloud API への認証
User およびPassword をログインクレデンシャルに設定するか、sandbox アカウントに接続する場合はsandbox ユーザーのクレデンシャルに設定します。
Salesforce Marketing Cloud API への接続
デフォルトでは、CData 製品は本番環境に接続します。Salesforce Marketing Cloud sandbox アカウントを使用するには、UseSandbox をtrue に設定します。
デフォルトのインスタンスは、Web Services API s7 です。他のインスタンスを使用する場合は、Instance を設定できます。
<configuration>
... <connectionStrings>
<add name="SFMarketingCloudContext" connectionString="Offline=False;User=myUser;Password=myPassword;" providerName="System.Data.CData.SFMarketingCloud" />
</connectionStrings>
<entityFramework>
<providers>
... <provider invariantName="System.Data.CData.SFMarketingCloud" type="System.Data.CData.SFMarketingCloud.SFMarketingCloudProviderServices, System.Data.CData.SFMarketingCloud.Entities.EF6" />
</providers>
<entityFramework>
</configuration>
</code>
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Entity.ModelConfiguration.Conventions;
class SFMarketingCloudContext :DbContext {
public SFMarketingCloudContext() { }
protected override void OnModelCreating(DbModelBuilder modelBuilder) { // To remove the requests to the Migration History table
Database.SetInitializer<SFMarketingCloudContext>(null); // To remove the plural names modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
}
using System.Data.Entity.ModelConfiguration;
using System.ComponentModel.DataAnnotations.Schema;
public class Subscriber {
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public System.String Id { get; set; }
public System.String Id { get; set; }
}
public class SubscriberMap :EntityTypeConfiguration<Subscriber> {
public SubscriberMap() {
this.ToTable("Subscriber");
this.HasKey(Subscriber => Subscriber.Id);
this.Property(Subscriber => Subscriber.Id);
}
}
public DbSet<Subscriber> Subscriber { set; get; }
SFMarketingCloudContext context = new SFMarketingCloudContext();
context.Configuration.UseDatabaseNullSemantics = true;
var query = from line in context.Subscriber select line;