AdventureWorks Sales Connection (EDM)

エンティティ データ モデル (EDM) 上で構築されたプログラミング可能なクラスを使用するには、データに対する接続が開かれている必要があります。Adventure Works Sales Model に対する接続は、プロバイダ接続文字列と System.Data.EntityClient 名前空間の ObjectContext に基づいています。

アプリケーション構成ファイル

EDM を使用するアプリケーションの構成ファイルは、実行可能ファイルのスコープに置かれている必要があります。この構成ファイルには、モデルとマッピングを定義したスキーマを識別する接続文字列、データベース管理システムを識別するプロバイダ接続文字列、および System.Data.EntityClient 名前空間を識別するプロバイダ名が含まれています。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name=" AdvWksSalesEntities" 
         connectionString="metadata=.;
         provider=System.Data.SqlClient;
         provider connection string=
         &quot;Data Source=serverName;
         Initial Catalog=AdventureWorks;
         Integrated Security=True;
         multipleactiveresultsets=true&quot;"
         providerName="System.Data.EntityClient" />
  </connectionStrings>

</configuration>

アプリケーション コード

次のコードは、AdventureWorksEntities という ObjectContext への接続を開く方法を示しています。アプリケーション構成ファイルがスコープ内にあると、1 つのコード行 AdventureWorksEntities db = new AdventureWorksEntities() を使用して接続を開くことができます。

ObjectContext は、アプリケーションによって使用されるデータのコレクションへのアクセスを可能にします。次のコード例は、ObjectContext および Contact 型のすべてのインスタンスを最初に開きます。次に、SalesOrderHeader のインスタンスを列挙し、SalesOrderHeaderAddress の間のアソシエーションに基づいてナビゲーション プロパティを使用して、1 行のアドレスを見つけて表示します。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using AdvWrksSalesModel;

namespace AdvWrksSalesClient
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                using (AdvWksSalesEntities db =
                                     new AdvWksSalesEntities ())
                {
                    foreach (Contact c in db.Contact)
                        Console.WriteLine("{0}, {1}",
                                 c.LastName, c.FirstName);


                    foreach (SalesOrderHeader soHeader in 
                                          db.SalesOrderHeader)
                    {
                        soHeader.Address1Reference.Load();
                    Console.WriteLine(soHeader.Address1.AddressLine1);

                    }

                }
            }
            catch (System.Data.EntityCommandExecutionException e)
            {
                Console.WriteLine(e.ToString());
            }
        }
    }
}

参照

概念

AdventureWorks Sales 概念スキーマ (EDM)
AdventureWorks Sales ストレージ スキーマ (EDM)
AdventureWorks Sales マッピング スキーマ (EDM)