ノーコードでクラウド上のデータとの連携を実現。
詳細はこちら →Dynamics CRM Data Provider の30日間無償トライアルをダウンロード
ダウンロードはこちら製品の詳細
潜在顧客、連絡先、営業案件、アカウントなどのMicrosoft Dynamics CRM アカウントデータを組み込んだパワフルな.NET アプリケーションを短時間・低コストで作成して配布できます。
CData
こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。
Entity Framework はobject-relational mapping フレームワークで、データをオブジェクトとして扱うために使われます。Visual Studio のADO.NET Entity Data Model ウィザードを実行するとEntity Model を作成できますが、このモデルファーストアプローチでは、データソースに変更があった場合やエンティティ操作をより制御したい場合は不都合があります。この記事では、CData ADO.NET Provider を使いコードファーストアプローチでDynamics CRM にアクセスします。
Dynamics CRM では、インスタンスごとに接続文字列の設定が必要です。 Authentication セクションでは、有効なDynamics CRM のUser、Password の入力、およびDynamics CRM Server Organization root のURL を設定します。さらに、CRMVersion プロパティに、'CRM2011+' もしくは'CRMOnline' を設定します。IFD コンフィグレーションもサポートされていますので、InternetFacingDeployment をTRUE に設定してください。
また、Security Token Service(STS)、もしくはAD FS エンドポイントをSTSURL プロパティに設定することもできます。 この値はGetSTSUrl ストアドプロシージャで取得できます。 Office 365 ユーザーはデフォルトSTS URL にCRMVersion の設定だけで接続することができます。
<configuration>
... <connectionStrings>
<add name="DynamicsCRMContext" connectionString="Offline=False;User=myuseraccount;Password=mypassword;URL=https://myOrg.crm.dynamics.com/;CRM Version=CRM Online;" providerName="System.Data.CData.DynamicsCRM" />
</connectionStrings>
<entityFramework>
<providers>
... <provider invariantName="System.Data.CData.DynamicsCRM" type="System.Data.CData.DynamicsCRM.DynamicsCRMProviderServices, System.Data.CData.DynamicsCRM.Entities.EF6" />
</providers>
<entityFramework>
</configuration>
</code>
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Entity.ModelConfiguration.Conventions;
class DynamicsCRMContext :DbContext {
public DynamicsCRMContext() { }
protected override void OnModelCreating(DbModelBuilder modelBuilder) { // To remove the requests to the Migration History table
Database.SetInitializer<DynamicsCRMContext>(null); // To remove the plural names modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
}
using System.Data.Entity.ModelConfiguration;
using System.ComponentModel.DataAnnotations.Schema;
public class Account {
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public System.String Id { get; set; }
public System.String FirstName { get; set; }
}
public class AccountMap :EntityTypeConfiguration<Account> {
public AccountMap() {
this.ToTable("Account");
this.HasKey(Account => Account.Id);
this.Property(Account => Account.FirstName);
}
}
public DbSet<Account> Account { set; get; }
DynamicsCRMContext context = new DynamicsCRMContext();
context.Configuration.UseDatabaseNullSemantics = true;
var query = from line in context.Account select line;