ノーコードでクラウド上のデータとの連携を実現。
詳細はこちら →CData
こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。
Entity Framework はobject-relational mapping フレームワークで、データをオブジェクトとして扱うために使われます。Visual Studio のADO.NET Entity Data Model ウィザードを実行するとEntity Model を作成できますが、このモデルファーストアプローチでは、データソースに変更があった場合やエンティティ操作をより制御したい場合は不都合があります。この記事では、CData ADO.NET Provider を使いコードファーストアプローチでBullhorn CRM にアクセスします。
Bullhorn CRM に接続するには、Bullhorn CRM アカウントの資格情報を入力します。また、DataCenterCode プロパティをデータセンターに対応するデータセンターコードに設定してください。詳しくは、こちら を参照してください。
CLS2、CLS21 などのコードはクラスタID で、ログインした際のブラウザのURL(アドレスバー)に含まれます。
例えば、
https://cls21.bullhornstaffing.com/BullhornSTAFFING/MainFrame.jsp?#no-baこちらのURL は、ログインしたユーザーがCLS21 クラスタに存在することを示しています。
ちなみに、コールバックURL の末尾に"/" を含む値、例えば http://localhost:33333/ を指定する場合は、アプリケーション設定で指定したコールバックURL と厳密に同じ値を指定する必要があります。このパラメータの文字が一致しない場合、エラーとなります。
Bullhorn CRM ではOAuth 2.0 認証標準を利用できます。 OAuth を使用して認証するには、すべてのシナリオでカスタムOAuth アプリケーションを作成して設定する必要があります。詳しい認証方法については、ヘルプドキュメントの「OAuth」セクションを参照してください。
<configuration>
... <connectionStrings>
<add name="BullhornCRMContext" connectionString="Offline=False;DataCenterCode=CLS33;OAuthClientId=myoauthclientid;OAuthClientSecret=myoauthclientsecret;" providerName="System.Data.CData.BullhornCRM" />
</connectionStrings>
<entityFramework>
<providers>
... <provider invariantName="System.Data.CData.BullhornCRM" type="System.Data.CData.BullhornCRM.BullhornCRMProviderServices, System.Data.CData.BullhornCRM.Entities.EF6" />
</providers>
<entityFramework>
</configuration>
</code>
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Entity.ModelConfiguration.Conventions;
class BullhornCRMContext :DbContext {
public BullhornCRMContext() { }
protected override void OnModelCreating(DbModelBuilder modelBuilder) { // To remove the requests to the Migration History table
Database.SetInitializer<BullhornCRMContext>(null); // To remove the plural names modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
}
using System.Data.Entity.ModelConfiguration;
using System.ComponentModel.DataAnnotations.Schema;
public class Candidate {
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public System.String Id { get; set; }
public System.String Id { get; set; }
}
public class CandidateMap :EntityTypeConfiguration<Candidate> {
public CandidateMap() {
this.ToTable("Candidate");
this.HasKey(Candidate => Candidate.Id);
this.Property(Candidate => Candidate.Id);
}
}
public DbSet<Candidate> Candidate { set; get; }
BullhornCRMContext context = new BullhornCRMContext();
context.Configuration.UseDatabaseNullSemantics = true;
var query = from line in context.Candidate select line;