Провайдер Entity Framework

Примечание

Поддержка остановлена, использовать не рекомендуется.

Чтобы использовать провайдер СУБД ЛИНТЕР для Entity Framework, надо добавить следующую информацию в конфигурационный файл App.config:

< ?xml version="1.0" encoding="utf-8"? >
< configuration >
  < configSections >
    < section name="entityFramework"
 type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection,
 EntityFramework, Version=6.0.0.0, Culture=neutral,
 PublicKeyToken=b77a5c561934e089" requirePermission="false" / >
  < /configSections >
  < entityFramework >
    < providers >
      < provider invariantName="System.Data.LinterClient"
 type="System.Data.LinterClient.Entity.LinterProviderServices,
 EntityFramework.Linter, Version=1.0.0.0, Culture=neutral,
 PublicKeyToken=04c2ab4f9b7aa4d0" / >
    < /providers >
    < defaultConnectionFactory
 type="System.Data.Entity.Infrastructure.LinterConnectionFactory,
 EntityFramework.Linter, Version=1.0.0.0, Culture=neutral,
 PublicKeyToken=04c2ab4f9b7aa4d0" / >
  < /entityFramework >
< /configuration >
      

После этого надо добавить ссылку на сборку EntityFramework.Linter.dll. Для этого в окне Solution Explorer:

  1. щёлкнуть правой кнопкой мыши по узлу References;

  2. в контекстном меню выбрать Add Reference…;

  3. в окне Reference Manager выбрать Assemblies= >Extensions;

  4. установить флажок напротив сборки EntityFramework.Linter;

  5. нажать кнопку OK.

Теперь можно использовать стандартные методы Entity Framework для разработки приложения. Например, следующая программа сохраняет в БД время запуска и выводит на экран список всех запусков. Данный пример можно использовать для создания журнала посещений, где каждый запуск приложения соответствует визиту одного человека:

// C#
using System;
using System.Data.Entity;

namespace CodeFirstDemo
{
  class Program
  {
    static void Main(string[] args)
    {
      using (var context = new VisitContext())
      {
        // Подключение к БД и создание таблицы, если она не существует
        context.Database.CreateIfNotExists();

        // Добавление новой записи и сохранение изменений
        context.Visits.Add(
          new Visit { Name = "Пользователь A", Date = DateTime.Now });
        context.SaveChanges();

        // Чтение записей из БД
        Console.WriteLine("Список визитов:");
        foreach (var visit in context.Visits)
        {
          Console.WriteLine(visit.Id + " | " + visit.Name + " | " + visit.Date);
        }

        Console.WriteLine("Для продолжения нажмите любую клавишу...");
        Console.ReadKey();
      }
    }
  }

  public class VisitContext : DbContext
  {
    public VisitContext()
    : base("Data Source=LOCAL;User ID=SYSTEM;Password=MANAGER8;Persist Security Info = true")
    {
    }
    public VisitContext(string connectionString)
    : base(connectionString)
    {
    }
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.HasDefaultSchema("SYSTEM");
    }
    public DbSet< Visit > Visits { get; set; }
  }
}

Для сборки примера нужен пакет EntityFramework, который можно установить через менеджер пакетов NuGet:

  1. в меню Visual Studio выбрать File(Файл)= >Save all(Сохранить все) и сохранить решение;

  2. в окне Solution Explorer щёлкнуть правой кнопкой мыши по узлу Solution (Решение) и в контекстном меню выбрать Manage NuGet Packages for Solution…(Управление пакетами NuGet для Решения…);

  3. перейти на вкладку Browse(Обзор);

  4. выбрать пакет EntityFramework;

  5. установить флажок напротив имени проекта;

  6. нажать кнопку Install(Установить).

При первом запуске приложения в БД будет создана схема "dbo" и таблица "dbo"."Visits".

Таблицу также можно создать на этапе разработки приложения с помощью автоматических миграций Code First Migrations. Для этого в меню Visual Studio выбрать Tools(Сервис)= >NuGet Package Manager(Диспетчер пакетов NuGet)= >Package Manager Console(Консоль диспетчера пакетов) и в появившемся окне после приглашения PM > ввести команды:

PM > Enable-Migrations -EnableAutomaticMigrations
PM > Add-Migration Visit_create
PM > Update-Database

Примечание

Если контекст унаследован от класса ObjectContext, то методы CreateDatabase() и DeleteDatabase() выполняют создание и удаление таблиц БД соответственно.

Если контекст унаследован от класса DbContext, то удаление таблиц методом DeleteDatabase() не поддерживается в текущей версии.