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=
         &quot;Data Source=serverName;
         Initial Catalog=AdventureWorks;
         Integrated Security=True;
         multipleactiveresultsets=true&quot;"
         providerName="System.Data.EntityClient" />
  </connectionStrings>

</configuration>

应用程序代码

下面的代码显示如何打开到名为 AdventureWorksEntitiesObjectContext 的连接。当应用程序配置文件在作用域中时,可以使用一行代码打开连接:AdventureWorksEntities db = new AdventureWorksEntities()

ObjectContext 提供了对应用程序所使用的数据集合的访问。下面的示例首先打开 ObjectContext,然后打开 Contact 类型的所有实例。其次,该示例枚举 SalesOrderHeader 的实例,并使用基于 SalesOrderHeaderAddress 之间的关联的导航属性来定位和显示一行地址。

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)