第3回:さまざまなデータソースへのアクセス (2/3)

次世代データアクセステクノロジー」

次世代データアクセステクノロジー

第3回:さまざまなデータソースへのアクセス

著者:マイクロソフト  小高 太郎

公開日:2008/1/22(火)

遅延実行の注意点

こうしたメカニズムからリスト4のようなプログラムを扱う場合は注意が必要になってくる。

リスト4の例では、(1)のforeachループ1回目のタイミングでSQL Serverに対して問い合わせ(publishersテーブル)が発生する。問題は(2)のタイミングである。(2)では(1)のループごとに(publishersに関連づいた)titlesに対してのSQLがSQL Serverに対して毎回発行されてしまうことになる。

この回避方法としては、リスト5のようにサブクエリーを使用した形にすれば、SQL Serverへの問い合わせは1回で済む。



リスト5:複数のSQL発行を回避する方法
static void Main(string[] args)
{
    using(pubsDataContext pubs = new pubsDataContext())
    {
        var query = from p in pubs.publishers
                  select new
                    {
                        p.pub_name,
                       TitleName = from t in pubs.titles
                                    where p.pub_id == t.pub_id
                                    select new
                                    {
                                        t.title1
                                        }
                     };

        foreach(var q1 in query)
        {
            Console.WriteLine("Publesher: {0}", q1.pub_name);
            foreach(var q2 in q1.TitleName)
            {
               Console.WriteLine("\tTitleName: {0}", q2.title1);
           }
        }
    }
}

リスト6:Windowsアプリケーションでのコントロールバインドの例
private void Form1_Load(object sender, EventArgs e)
{

    var emp = from x in pubs.employees
             where x.job_lvl >= 200
             select x;
        dataGridView1.DataSource = emp;
}


データバインド

LINQを使用して、コントロールのバインドを行うことができる。特にWebアプリケーション内では、データソースとしてLINQ Data Sourceという新しいデータソースが追加されている。これを用いることで、WebアプリケーションでシームレスにLINQを使用することができるようになっている(リスト6)。 次のページ


前のページ  1  2  3  次のページ


マイクロソフト株式会社 小高 太郎
著者プロフィール
マイクロソフト株式会社  小高 太郎
ERP パッケージ開発に携わり、プログラマーからスタート。Microsoft Universityの講師を兼務、その後、SE、PM、管理職の道に進むも、縁あって2007年3月よりデベロッパー エバンジェリストに転身、現在は開発者向けに様々な技術訴求を行うべく活動中。


INDEX
第3回:さまざまなデータソースへのアクセス
  LINQ to SQLにおける「追加」「更新」「削除」の操作とLINQ to Object
遅延実行の注意点
  LINQ to Object
次世代データアクセステクノロジー
第1回 LINQとADO.NET Entity Framework
第2回 LINQによるデータアクセス実装
第3回 さまざまなデータソースへのアクセス
第4回 ADO.NET Entity Frameworkによるデータアクセス実装方法
第5回 ADO.NET Entity FrameworkにおけるObjectServicesの使用

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored