Провайдер Entity Framework 6
Примечание
Поддержка остановлена, использовать не рекомендуется.
Для использования Linter с Entity Framework 6 необходимо добавить в проект зависимости на пакеты
EntityFramework
, EntityFramework.Linter
и System.Data.LinterClient
при помощи менеджера пакетов NuGet, зарегистрировать и сконфигурировать для испоьлзования классы LinterClientFactory и LinterProviderServices. После этого можно использовать стандартные методы Entity Framework для разработки приложения. Например, следующая программа сохраняет в БД время запуска и
выводит на экран список всех запусков. Данный пример можно использовать для создания журнала посещений, где каждый запуск приложения соответствует визиту одного человека:
// C# using System; using System.Data.Entity; namespace CodeFirstDemo { class Program { static void Main(string[] args) { // Регистрация фабрики классов провайдера DbConfiguration.SetConfiguration(new LinterContextConfiguration()); DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.LinterClient"); DbConnectionStringBuilder builder = factory.CreateConnectionStringBuilder(); builder.ConnectionString = "Data Source=LOCAL;User ID=SYSTEM;Password=MANAGER8"; DbConnection con = factory.CreateConnection(); con.ConnectionString = builder.ToString(); con.Open(); using (var context = new VisitContext(con)) { // Подключение к БД и создание таблицы, если она не существует 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(); } } } class LinterContextConfiguration : DbConfiguration { public LinterContextConfiguration() { Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); DbProviderFactories.RegisterFactory("System.Data.LinterClient", typeof(LinterClientFactory)); SetProviderServices("System.Data.LinterClient", LinterProviderServices.Instance); } }; public class VisitContext : DbContext { public VisitContext(DbConnection con) : base(con, true) { } protected override void OnModelCreating(DbModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.HasDefaultSchema("SYSTEM"); } public DbSet< Visit > Visits { get; set; } } }
При первом запуске приложения в БД будет создана схема "SYSTEM" и таблица "SYSTEM"."Visits", если запуск производится на платформе, поддерживаемой миграциями EF6.
Таблицу также можно создать на этапе разработки приложения с помощью автоматических миграций 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() не поддерживается в текущей версии.