SHOEISHA iD

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

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

Visual Studio 2010によるSharePoint 2010開発の基本

Business Connectivity Services(BCS)を使用したSQL Azureとの連携

Visual Studio 2010によるSharePoint 2010開発の基本(5)

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

[7]LINQ to SQLクラスを追加する

 SQL Azureへのアクセスを容易にするために、LINQ to SQLクラスを追加します。

 通常のLINQ to SQLクラスの追加と同じなので、細かな手順は省かせていただきます。SQL Azureに接続する際の注意点として、[接続の追加]ダイアログボックスで、[サーバー名]にはSQL Azureのサーバーを入力し、SQL Server認証を使用してSQL Azureのユーザー名とパスワードを入力してください。データベースには、事前に作成しておいた[SampleDB]を指定します(図18)。

図18 SQL Azureへの接続
図18 SQL Azureへの接続

[8]ItemEntityService.csのコードを修正する

 モデルのメソッド定義とマッピングされているItemEntityService.csを、リスト4のように修正します。

リスト4 エンティティサービスの修正(ItemEntityService.cs)
public class ItemEntityService
{
    // (1)接続文字列の設定【変更が必要】
    private const string connectionString = "Server=tcp:<サーバー名>.database.windows.net,1433;Database=SampleDB;User ID=<ユーザー名>@<サーバー名>;Password=<パスワード>;Trusted_Connection=False;Encrypt=True;";

    public static ItemEntity ReadItem(int id)
    {
        using (var db = new DataClasses1DataContext(connectionString))
        {
            // (2)取得したItemデータからItemEntityを作成
            var entity = (from i in db.Items
                           where i.ItemID == id
                           select new ItemEntity
                           {
                               ItemID = i.ItemID,
                               ItemName = i.ItemName,
                               Price = i.Price,
                               Description = i.Description
                           }).Single();

            return entity;
        };
    }

    public static IEnumerable<ItemEntity> ReadList()
    {
        using (var db = new DataClasses1DataContext(connectionString))
        {
            List<ItemEntity> entityList = new List<ItemEntity>();

            // (3)ItemEntityリストにデータを追加
            var items = from i in db.Items select i;
            foreach (var i in items)
            {
                entityList.Add(new ItemEntity
                {
                    ItemID = i.ItemID,
                    ItemName = i.ItemName,
                    Price = i.Price,
                    Description = i.Description
                });
            }

            return entityList;
        };
    }
}

 (1)では、SQL Azureの接続文字列を設定しています。接続文字列は、Windows Azure開発者ポータル上で表示できますので、コピーして使用できます。

 (2)では、LINQを使用してSQL Azure上のItemsテーブルから1件のデータを取得し、ItemEntityクラスを作成しています。

 (3)では、LINQを使用してSQL Azure上のItemsテーブルから全件データを取得し、作成したItemEntityのリストに追加しています。

段階2までのサンプル実行

 それでは、SharePoint上でSQL Azureのデータを表示できるかどうかを確認してみましょう。

 作成した外部コンテンツタイプを配置し、SharePointサイトを起動します。外部コンテンツタイプのモデルのエンティティ名をEntity1からItemEntityに変更しましたので、外部リストを改めて作成し直す必要があります。新たに作成する外部リストの[外部コンテンツタイプの種類]には、[BdcModelProjectSample.BdcModel1.ItemEntity(BdcModel1)]を指定します。

 作成した外部リストを表示すると、SQL Azure上のItemsテーブルに登録しておいたデータの一覧が正しく表示されていることが分かります(図19)。

図19 外部リストでSQL Azureのデータを一覧表示
図19 外部リストでSQL Azureのデータを一覧表示

 さらに、データの個別表示も行えます(図20)。

図20 データの個別表示
図20 データの個別表示

 実装したReadListメソッドやReadItemメソッドが正しく動作していることが確認できましたので、SharePointサイトを終了します。

次のページ
まとめ

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
Visual Studio 2010によるSharePoint 2010開発の基本連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

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

WINGSプロジェクト 広瀬 嘉久(株式会社ジェイテックジャパン)(ヒロセ ヨシヒサ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6038 2011/07/20 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング