Провайдер 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:
-
щёлкнуть правой кнопкой мыши по узлу References;
-
в контекстном меню выбрать Add Reference…;
-
в окне Reference Manager выбрать Assemblies= >Extensions;
-
установить флажок напротив сборки EntityFramework.Linter;
-
нажать кнопку 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=MANAGER;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:
-
в меню Visual Studio выбрать File(Файл)= >Save all(Сохранить все) и сохранить решение;
-
в окне Solution Explorer щёлкнуть правой кнопкой мыши по узлу Solution (Решение) и в контекстном меню выбрать Manage NuGet Packages for Solution…(Управление пакетами NuGet для Решения…);
-
перейти на вкладку Browse(Обзор);
-
выбрать пакет EntityFramework;
-
установить флажок напротив имени проекта;
-
нажать кнопку 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() не поддерживается в текущей версии.