Поделиться через


Соединение с моделью AdventureWorks Sales (модель EDM)

Чтобы использовать программируемые классы, построенные на основе модели Entity Data Model (модель EDM), необходимо установить соединение с данными. Соединение с моделью Adventure Works Sales основано на строке соединения поставщика и контексте ObjectContext пространства имен System.Data.EntityClient.

Файл конфигурации приложения

В области исполняемого файла приложения, использующего модель 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>

Код приложения

Следующий код показывает, как открыть соединение с контекстом ObjectContext с именем AdventureWorksEntities. Если файл конфигурации приложения расположен в области выполняемого файла, соединение можно открыть одной строкой кода: 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 Sales (модель EDM)
Схема хранилища модели AdventureWorks Sales (модель EDM)
Схема сопоставления модели AdventureWorks Sales (модель EDM)