Установка Entity Framework 6 в проект



Перед тем как использовать EF в проекте при подходе Code-First необходимо добавить ссылки на библиотеки EF.

Выполните следующие действия:

1. Для добавления поддержки EF с помощью NuGet (начиная с версии 4, библиотека EF входит в менеджер пакетов NuGet), выберите в окне Solution Explorer проект CodeFirst, щелкните по нему правой кнопкой мыши и выполните команду из контекстного меню Manage Nuget Packages.

2. В появившемся диалоговом окне на вкладке Обзор выберите последнюю версию Entity Framework и нажмите кнопку Install (Установить):

3. После этого появится окно с описанием лицензии на использование Entity Framework. Согласитесь с условиями, после чего NuGet установит в проект Entity Framework.

4. Добавьте ссылку на ключевое пространство имен в EF - System.Data.Entity в файле Model.cs:

using System.Data.Entity;

5. Повторите три первых действия для установки EF в проект CustomerManager.

Класс контекста данных

Созданные классы Customer и Order описывают структуру бизнес-модели, которая используется в приложении. Для того чтобы эти классы служили также для управления данными в базе данных, нужно использовать класс контекста.

EF имеет два базовых класса контекста: ObjectContext – этот класс является более общим классом контекста данных, и используется, начиная с самых ранних версий EF и DbContext – этот класс контекста данных появился в Entity Framework 4.1, и он обеспечивает поддержку подхода Code-First (ObjectContext также обеспечивает работу подхода Code-First, но он труднее в использовании). Далее будет использоваться DbContext.

1. Для создания класса контекста добавьте новый класс SampleContext в проект CodeFirst.

2. В добавленном классе имя будущей базы данных укажите через вызов конструктора базового класса и укажите соответствующие таблицы (по традиции во множественном числе) базы данных с помощью свойств с типом DbSet:

using System.Data.Entity;

namespace CodeFirst

{

public class SampleContext : DbContext

{

   public SampleContext() : base("MyShop")

   { }

 

   public DbSet<Customer> Customers { get; set; }

   public DbSet<Order> Orders { get; set; }

}

}

Этот класс контекста представляет полный слой данных, который можно использовать в приложениях. Благодаря DbContext, можно запросить, изменить, удалить или вставить значения в базу данных. Обратите внимание на использование конструктора в этом классе с вызовом конструктора базового класса DbContext и передачей ему строкового параметра.

В этом параметре указывается либо имя базы данных, либо строка подключения к базе данных. В данном случае указывается явно имя базы данных, т.к. по умолчанию, при генерации базы данных EF использует имя приложения и контекста данных (например, CodeFirst.SampleContext), которое использовать неудобно.

3. Постройте приложение.

Установка подключения к базе данных

Для установки подключения обычно используется файл конфигурации приложения, в проектах для настольных приложений это файл App.config.

1. Откройте файл конфигурации App.config и после закрывающего тега </configSections> добавьте секцию connectionStrings, в которой с помощью элемента укажите подключение:

<connectionStrings>

<add name="MyShop" connectionString="data source=(localdb)\v11.0;Initial Catalog=userstore.mdf;Integrated Security=True;"

providerName="System.Data.SqlClient"/>

 </connectionStrings>

В конструкторе класса контекста SampleContext была передана в качестве названия подключения строка "MyShop", поэтому данное название и указывается в атрибуте name=" MyShop".

Работа с данными

На текущий момент есть классы данных и класс контекста, необходимые для работы с базой данных, которая еще не существует. Простое создание этих классов не приводит к автоматическому созданию (изменению) базы данных при запуске приложения. Чтобы создать базу данных, нужно добавить код работы с данными с помощью EF, например, написать код вставки данных в таблицу.

1. В поле класса формы объявите ссылки:

a) на созданный ранее контекст данных:

SampleContext context;

b) на массив байт, для загрузки фото заказчика:

byte[] Ph;

2. В обработчике события нажатия кнопки Добавить данные создайте экземпляр класса контекста базы данных, создайте объект – заказчика с передачей в его свойства соответствующих значений текстовых полей формы. После этого добавьте методом Add() созданного заказчика в базу данных и, наконец методом SaveChanges() сохраните изменения в базе данных: 

       try

       {

               Customer customer = new Customer

               {

                   Name = this.textBoxname.Text,

                   Email = this.textBoxmail.Text,

                   Age = Int32.Parse(this.textBoxage.Text),

                   Photo = Ph

                };

               context.Customers.Add(customer);

               context.SaveChanges();

               textBoxname.Text = String.Empty;

               textBoxmail.Text = String.Empty;

               textBoxage.Text = String.Empty;

       }

       catch(Exception ex)

       {

           MessageBox.Show("Ошибка: " + ex.ToString());

       }

   }

Данный код создает объект контекста SampleContext и использует его, чтобы добавить новые данные в таблицу Customers. Вызов метода SaveChanges() сохраняет изменения в базе данных, а при первой вставке данных вызов SaveChanges() создаст базу данных.

3. Добавьте обработчик нажатия кнопки Выберите файл, которая даст возможность загрузить изображение в базу данных.

4. В обработчике создайте объект стандартного диалогового окна для открытия файла, загрузите картинку в класс изображения Image и преобразуйте ее в массив байт:

       OpenFileDialog diag = new OpenFileDialog();

       if (diag.ShowDialog() == DialogResult.OK)

       {

           Image bm = new Bitmap(diag.OpenFile());

               

           ImageConverter converter = new ImageConverter();

           Ph = (byte[])converter.ConvertTo(bm, typeof(byte[]));

       }

5. Постройте и запустите приложение.

6. Введите данные о заказчике и нажмите кнопку Добавить данные.

Обратите внимание, что при первом добавлении данных возникает заметная задержка, потому что в данном моменте и создается база данных.

7. Введите данные о втором заказчике. Обратите внимание, что данные добавились в этом случае быстро, т.к. они вставляются в уже существующую базу данных.


Дата добавления: 2019-02-26; просмотров: 256; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!