次の方法で共有


チュートリアル: ビジネス データを使用した SharePoint での外部リストの作成

ビジネス データ接続 (BDC) サービスを使用すると、SharePoint で、バックエンド サーバー アプリケーション、Web サービス、データベースのビジネス データを表示できます。

このチュートリアルでは、サンプル データベースに含まれる連絡先に関する情報を返すという、BDC サービスのモデルを作成する方法について説明します。 次に、このモデルを使用して、SharePoint に外部リストを作成します。

このチュートリアルでは、次の作業について説明します。

  • プロジェクトの作成。
  • モデルへのエンティティの追加。
  • Finder メソッドの追加。
  • SpecificFinder メソッドの追加。
  • プロジェクトのテスト。

前提条件

このチュートリアルを実行するには、次のコンポーネントが必要です。

  • サポート対象エディションの Windows と SharePoint

  • AdventureWorks サンプル データベースにアクセスします。 AdventureWorks データベースをインストールする方法の詳細については、SQL Server サンプル データベースに関するページを参照してください。

BDC モデルを含むプロジェクトを作成する

  1. Visual Studio のメニュー バーで、[ファイル]>[新規作成]>[プロジェクト] の順に選択します。

    [新しいプロジェクト] ダイアログ ボックスが表示されます。

  2. [Visual C#] または [Visual Basic] のどちらかで、[SharePoint] ノードを展開し、[2010] 項目を選択します。

  3. [テンプレート] ペインで、[SharePoint 2010 プロジェクト] を選択し、プロジェクトに AdventureWorksTest という名前を付けて、[OK] をクリックします。

    SharePoint カスタマイズ ウィザードが表示されます。 このウィザードでは、プロジェクトのデバッグ時に使用するサイトやソリューションの信頼レベルを設定できます。

  4. [ファーム ソリューションとして配置する] オプションボタンをクリックして、信頼レベルを設定します。

  5. [完了] をクリックして、既定のローカル SharePoint サイトを作成します。

  6. ソリューション エクスプローラーで、[SharePoint] プロジェクト ノードをクリックします。

  7. メニュー バーで [プロジェクト]>[新しい項目の追加] の順に選択します。

    新しい項目の追加 ダイアログ ボックスが開きます。

  8. [テンプレート] ペインで、[ビジネス データ接続モデル (ファーム ソリューションのみ)] を選択し、プロジェクトに AdventureWorksContacts という名前を付けて、[追加] をクリックします。

プロジェクトにデータ アクセス クラスを追加する

  1. メニュー バーで、[ツール]>[データベースへの接続] の順に選択します。

    [接続の追加] ダイアログ ボックスが表示されます。

  2. SQL Server AdventureWorks サンプル データベースへの接続を追加します。

    詳細については、「接続の追加/変更 (Microsoft SQL Server)」を参照してください。

  3. ソリューション エクスプローラーで、プロジェクト ノードを選択します。

  4. メニュー バーで [プロジェクト]>[新しい項目の追加] の順に選択します。

  5. [インストールされたテンプレート] ペインで、[データ] ノードを選択します。

  6. [テンプレート] ペインで、[LINQ to SQL クラス] を選択します。

  7. [名前] ボックスで「AdventureWorks」と指定してから、[追加] を選択します。

    .dbml ファイルがプロジェクトに追加され、オブジェクト リレーショナル デザイナー (O/R デザイナー) が開きます。

  8. メニュー バーで、[表示]>[サーバー エクスプローラー] を選択します。

  9. サーバー エクスプローラーで、AdventureWorks サンプル データベースを表すノードを展開し、[テーブル] ノードを展開します。

  10. O/R デザイナーに [連絡担当者] テーブルを追加します。

    エンティティ クラスが作成され、デザイン サーフェイスに表示されます。 このエンティティ クラスには、[連絡担当者] テーブルの列にマップされるプロパティが含まれています。

BDC モデルから既定のエンティティを削除する

ビジネス データ接続モデル プロジェクトによって、Entity1 という名前の既定のエンティティがモデルに追加されます。 このエンティティを削除します。 後で、新しいエンティティを追加します。 空のモデルから開始すると、このチュートリアルを行うために必要な手順の数が減ります。

  1. ソリューション エクスプローラーで、[BdcModel1] ノードを展開し、BdcModel1.bdcm ファイルを開きます。

  2. ビジネス データ接続モデル ファイルが BDC デザイナーで開きます。

  3. デザイナーで、Entity1 のショートカット メニューを開き、[削除] を選択します。

  4. ソリューション エクスプローラーで、Entity1.vb (Visual Basic の場合) または Entity1.cs (C# の場合) のショートカット メニューを開き、[削除] を選択します。

  5. Entity1Service.vb (Visual Basic の場合) または Entity1Service.cs (C# の場合) のショートカット メニューを開き、[削除] を選択します。

モデルにエンティティを追加する

モデルにエンティティを追加します。 エンティティは、Visual Studio のツールボックスから BDC デザイナーに追加できます。

  1. メニュー バーで [表示][ツールボックス] の順にクリックします。

  2. ツールボックス[BusinessDataConnectivity] タブで、BDC デザイナーにエンティティを追加します。

    新しいエンティティがデザイナーに表示されます。 Visual Studio によって、EntityService.vb (Visual Basic の場合) または EntityService.cs (C# の場合) という名前のファイルがプロジェクトに追加されます。

  3. メニュー バーで [表示]>[プロパティ]>[ウィンドウ] の順に選択します。

  4. [プロパティ] ウィンドウで、[名前] プロパティ値を「Contact」に設定します。

  5. デザイナーで、エンティティのショートカット メニューを開き、[追加] を選択してから、[識別子] を選択します。

    新しい識別子がエンティティに表示されます。

  6. [プロパティ] ウィンドウで、識別子の名前を ContactID に変更します。

  7. [型名] ボックスの一覧で、[System.Int32] を選択します。

SpecificFinder メソッドを追加する

BDC サービスで特定の連絡先を表示できるようにするには、SpecificFinder メソッドを追加する必要があります。 ユーザーが一覧の項目を選択し、リボンの [項目の表示] をクリックすると、BDC サービスにより SpecificFinder メソッドが呼び出されます。

[BDC メソッドの詳細] ウィンドウを使用して、SpecificFinder メソッドを Contact エンティティに追加します。 SpecificFinder を返すには、コードをメソッドに追加します。

  1. BDC デザイナーで、Contact エンティティを選択します。

  2. メニュー バーで、[表示]>[その他のウィンドウ]>[BDC メソッドの詳細] の順に選択します。

    [BDC メソッドの詳細] ウィンドウが開きます。

  3. [メソッドの追加] 一覧で、[Specific Finder メソッドの作成] を選択します。

    Visual Studio により、次の要素がモデルに追加されます。 これらの要素は、[BDC メソッドの詳細] ウィンドウに表示されます。

    • ReadItem という名前のメソッド。

    • メソッドの入力パラメーター。

    • メソッドの戻り値パラメーター。

    • 各パラメーターの型記述子。

    • メソッドのメソッド インスタンス。

  4. [BDC メソッドの詳細] ウィンドウで、Contact 型記述子に対して表示される一覧を開き、[編集] を選択します。

    BDC エクスプローラーが開き、モデルの階層ビューが表示されます。

  5. [プロパティ] ウィンドウで、TypeName プロパティの横にある一覧を開き、[現在のプロジェクト] タブを選択し、Contact プロパティを選択します。

  6. BDC エクスプローラーで、Contact のショートカット メニューを開き、[型記述子の追加] をクリックします。

    TypeDescriptor1 という名前の新しい型記述子が、BDC エクスプローラーに表示されます。

  7. [プロパティ] ウィンドウで、[名前] プロパティの値を「ContactID」に設定します。

  8. TypeName プロパティの横にある一覧を開き、[Int32] を選択します。

  9. Identifier プロパティの横にある一覧を開き、[ContactID] を選択します。

  10. 手順 6 を繰り返して、次の各フィールドの型記述子を作成します。

    名前 種類名
    FirstName System.String
    LastName System.String
    電話 System.String
    EmailAddress System.String
    EmailPromotion System.Int32
    NameStyle System.Boolean
    PasswordHash System.String
    PasswordSalt System.String
  11. BDC デザイナーの Contact エンティティで、ReadItem メソッドを開きます。

    コード エディターで Contact サービス コード ファイルが開きます。

  12. ContactService クラスで、ReadItem メソッドを次のコードに置き換えます。 このコードは、以下のタスクを実行します。

    • AdventureWorks データベースの Contact テーブルからレコードを取得します。

    • Contact エンティティが BDC サービスに返されます。

    Note

    ServerName フィールドの値をサーバーの名前に置き換えてください。

    public static Contact ReadItem(int contactID)
    {
        const string ServerName = "MySQLServerName";
        AdventureWorksDataContext dataContext = new AdventureWorksDataContext
              ("Data Source=" + ServerName + ";" +
               "Initial Catalog=AdventureWorks;Integrated Security=True");
    
        Contact Contact =
            (from contacts in dataContext.Contacts.AsEnumerable().Take(20)
             where contacts.ContactID == contactID
             select contacts).Single();
        return Contact;
    }
    

Finder メソッドを追加する

BDC サービスで一覧に連絡先を表示できるようにするには、Finder メソッドを追加する必要があります。 [BDC メソッドの詳細] ウィンドウを使用して、Finder メソッドを Contact エンティティに追加します。 BDC サービスにエンティティのコレクションを返すには、メソッドにコードを追加します。

  1. BDC デザイナーで、Contact エンティティを選択します。

  2. [BDC メソッドの詳細] ウィンドウで [ReadItem] ノードを折りたたみます。

  3. ReadList メソッドの下にある [メソッドの追加] ボックスの一覧で、[Finder メソッドの作成] を選択します。

    Visual Studio によって、メソッド、戻り値パラメーター、型記述子が追加されます。

  4. BDC デザイナーの Contact エンティティで、ReadList メソッドを開きます。

    連絡先サービスのコード ファイルがコード エディターで開きます。

  5. ContactService クラスで、ReadList メソッドを次のコードに置き換えます。 このコードは、以下のタスクを実行します。

    • AdventureWorks データベースの Contacts テーブルからデータを取得します。

    • BDC サービスに Contact エンティティの一覧を返します。

      Note

      ServerName フィールドの値をサーバーの名前に置き換えてください。

      public static IEnumerable<Contact> ReadList()
      {
          const string ServerName = "MySQLServerName";
          AdventureWorksDataContext dataContext = new AdventureWorksDataContext
                ("Data Source=" + ServerName + ";" +
                 "Initial Catalog=AdventureWorks;Integrated Security=True");
      
          IEnumerable<Contact> Contacts =
              from contacts in dataContext.Contacts.Take(20)
              select contacts;
          return Contacts;
      
      }
      

プロジェクトをテストする

プロジェクトを実行すると、SharePoint サイトが開き、Visual Studio によってビジネス データ接続サービスにモデルが追加されます。 Contact エンティティを参照する外部リストを SharePoint に作成します。 AdventureWorks データベースにおける連絡先のデータが一覧に表示されます。

Note

ソリューションをデバッグする前に、SharePoint のセキュリティ設定を変更することが必要になる場合があります。 詳細については、「ビジネス データ接続モデルを設計する」を参照してください。

  1. F5 キーを押します。

    SharePoint サイトが開きます。

  2. [サイトの操作] メニューで [その他のオプション] コマンドをクリックします。

  3. [作成] ページで、[外部リスト] テンプレートを選択し、[作成] をクリックします。

  4. カスタム リストに Contacts という名前を付けます。

  5. [外部コンテンツ タイプ] フィールドの横にある参照ボタンをクリックします。

  6. [外部コンテンツタイプの選択] ダイアログ ボックスで、[AdventureWorksContacts.BdcModel1.Contact] 項目を選択し、[作成] をクリックします。

    SharePoint では、AdventureWorks サンプル データベースの連絡先を含む外部リストが作成されます。

  7. SpecificFinder メソッドをテストするには、一覧で連絡先を選択します。

  8. リボンで [項目] タブを選択してから、[項目の表示] コマンドを選択します。

    選択した連絡先の詳細がフォームに表示されます。