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=
"Data Source=serverName;
Initial Catalog=AdventureWorks;
Integrated Security=True;
multipleactiveresultsets=true""
providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
アプリケーション コード
次のコードは、AdventureWorksEntities という ObjectContext への接続を開く方法を示しています。アプリケーション構成ファイルがスコープ内にあると、1 つのコード行 AdventureWorksEntities db = new AdventureWorksEntities()
を使用して接続を開くことができます。
ObjectContext は、アプリケーションによって使用されるデータのコレクションへのアクセスを可能にします。次のコード例は、ObjectContext および Contact 型のすべてのインスタンスを最初に開きます。次に、SalesOrderHeader のインスタンスを列挙し、SalesOrderHeader と Address の間のアソシエーションに基づいてナビゲーション プロパティを使用して、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)