AdventureWorks 销售连接 (EDM)
为了使用 实体数据模型 (EDM) 中生成的可编程类,必须对数据打开连接。到 Adventure Works 销售模型的连接基于提供程序连接字符串和 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 的连接。当应用程序配置文件在作用域中时,可以使用一行代码打开连接:AdventureWorksEntities db = new AdventureWorksEntities()
。
ObjectContext 提供了对应用程序所使用的数据集合的访问。下面的示例首先打开 ObjectContext,然后打开 Contact 类型的所有实例。其次,该示例枚举 SalesOrderHeader 的实例,并使用基于 SalesOrderHeader 和 Address 之间的关联的导航属性来定位和显示一行地址。
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 销售概念架构 (EDM)
AdventureWorks 销售存储架构 (EDM)
AdventureWorks 销售映射架构 (EDM)