SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

現役エンジニア直伝! 「現場」で使えるコンポーネント活用術(CData)(AD)

EntityFramework対応で、よりC#やVB.NETのコードからアクセスしやすくなった「CData for Salesforce」

「CData ADO.NET Provider for Salesforce」の紹介

  • X ポスト
  • このエントリーをはてなブックマークに追加

EntityFrameworkをコードで定義する

 それでは、Salesforceのキャンペーンページで表示される内容をCData経由で表示するサンプルを作成してみましょう。

 キャンペーンページの内容はCampaignテーブルに格納されています。サーバーエクスプローラーで確認してみましょう。

Campaignテーブル
Campaignテーブル

新規プロジェクトの作成

 [ファイル]-[新しいプロジェクト]メニューを選択して[Windowsデスクトップ]-[WPFアプリケーション]を選択してWPFアプリの新規プロジェクトを作成します。

EntityFrameworkライブラリの追加

 NuGetを使ってEntityFramework 6(執筆時点の最新は6.1.3)をプロジェクトに追加します。

NuGetで追加
NuGetで追加

参照設定

 CDataのインストールフォルダ配下のlib\4.0にあるSystem.Data.CData.Salesforce.Entities.EF6.dllを参照設定します。

参照設定
参照設定

接続文字列の設定

 App.configにSalesforceに接続するためのConnectionStringsを設定します。

リスト1 App.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    :
  (略)
    :
  <connectionStrings>
    <add name="SalesforceContext" 
          connectionString="User=【1】;Password=【2】;Security Token=【3】;" 
          providerName="System.Data.CData.Salesforce" />
  </connectionStrings>
    :
  (略)
    :
</configuration>

 【1】【3】にはサーバーエクスプローラーで確認済のID、パスワード、セキュリティトークンを指定します。

Salesforceアクセス用クラス

 最初に用意するのはCampaignテーブルをクラス定義にしたものです。

リスト2 Campaignクラス
Public Class Campaign
    <DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)>
    Public Property Id As String
    Public Property Name As String
    Public Property Type As String
    Public Property Status As String
    Public Property StartDate As DateTime
    Public Property EndDate As DateTime
    Public Property ExpectedRevenue As Double
    Public Property BudgetedCost As Double
    Public Property ActualCost As Double
End Class

 テーブルの項目をすべて列挙する必要はありません。必要な項目だけを列挙します。1つだけ注意するのは、プライマリーキー(今回のケースならばId)を必ず含めるようにしてください。

 次にSalesforceとの接続用クラスを定義します。この中で先ほど作成したCampaignテーブル用のクラスを指定します。

リスト3 SalesforceContextクラス
Public Class SalesforceContext
    Inherits DbContext

    Public Property Campaign As DbSet(Of Campaign)

    Protected Overrides Sub OnModelCreating(modelBuilder As DbModelBuilder)
        System.Data.Entity.Database.SetInitializer(Of SalesforceContext)(Nothing)
        modelBuilder.Conventions.Remove(Of PluralizingTableNameConvention)()
    End Sub
End Class

次のページ
コードからEFを利用する

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
この記事の著者

初音玲(ハツネアキラ)

 国内SIerのSEでパッケージ製品開発を主に行っており、最近は、空間認識や音声認識などを応用した製品を手掛けています。 個人的には、仕事の内容をさらに拡張したHoloLensなどのMRを中心に活動しています。 Microsoft MVP for Windows Development ブログ:http://hatsune.hatenablog.jp/

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8733 2016/03/14 11:36

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング