Провайдер DevExpress

Примечание

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

Чтобы использовать провайдер СУБД ЛИНТЕР для DevExpress, нужно добавить ссылку на сборку DevExpress.Xpo.vNN.N.Providers.dll, где NN.N соответствует версии DevExpress. Данная сборка находится в подкаталоге /bin установочного каталога СУБД ЛИНТЕР. Сейчас поддерживаются версии DevExpress 10.1, 10.2, 15.2, но существует возможность собрать провайдер для любой версии DevExpress по требованию заказчика.

Перед первым доступом к БД нужно вызвать метод

LinterConnectionProvider.Register();

В строке подключения нужно указать дополнительный параметр

XpoProvider=Linter

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

using System;
using DevExpress.Xpo;
using DevExpress.Xpo.DB;

namespace DevExpressDemo
{
  class Program
  {
    static void Main(string[] args)
    {
      LinterConnectionProvider.Register();

      XpoDefault.DataLayer = XpoDefault.GetDataLayer(
        "XpoProvider=Linter;Data Source=LOCAL;User ID=SYSTEM;Password=MANAGER8",
        AutoCreateOption.DatabaseAndSchema);

      using (var session = new Session())
      {
        // Подключение к БД и создание таблицы, если она не существует
        session.Connect();

        // Добавление новой записи и сохранение изменений
        var newVisit = new Visit(session);
        newVisit.Name = "Пользователь A";
        newVisit.Date = DateTime.Now;
        session.Save(newVisit);

        // Чтение записей из БД
        Console.WriteLine("Список визитов:");
        var visits = new XPCollection< Visit >(session);
        foreach (var visit in visits)
        {
          Console.WriteLine(visit.Oid + " | " + visit.Name + " | " + visit.Date);
        }

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

  public class Visit : XPObject
  {
    public Visit(Session session)
      : base(session) { }

    private string m_Name;
    public string Name
    {
      get { return m_Name; }
      set { SetPropertyValue("Name", ref m_Name, value); }
    }

    private DateTime m_Date;
    public DateTime Date
    {
      get { return m_Date; }
      set { SetPropertyValue("Date", ref m_Date, value); }
    }
  }
}