Диалект NHibernate для Interbase

Я много работаю с сервером Interbase. Я хотел бы разработать для него уровень доступа к данным с помощью NHibernate, но готового диалакта для Interbase нет.

Кто-нибудь знает, существует ли диалект NHibernate, который используется для общей работы с базами данных только для ANSI, или любой из существующих диалектов будет нормально работать с Interbase?

Или, с другой стороны, какая работа требуется для создания нового диалекта?

Спасибо за любой совет, который вы можете дать.

Дэйвид


person David    schedule 15.07.2010    source источник
comment
Здравствуйте, я знаю, что это было два года назад, но удалось ли вам что-нибудь найти / создать?   -  person SamuelDavis    schedule 26.02.2013


Ответы (3)


Вы можете попробовать с GenericDialect.

В любом случае я предлагаю вам взглянуть на существующие диалекты на https://github.com/nhibernate/nhibernate-core/tree/master/src/NHibernate/Dialect и напишите его для Interbase, которым затем можете поделиться с сообществом. Это не сложно.

person Diego Mijelshon    schedule 15.07.2010
comment
Хотя на самом деле это довольно сложно. Нет документации. - person David; 20.07.2010
comment
Исходный код - это документация (при расширении фреймворка OSS :-)). Посмотрите, что в других диалектах, что между ними отличается, и что будет отличаться в Interbase. Начните с чего-нибудь, кроме MsSql и Oracle (потому что они более сложные) - person Diego Mijelshon; 20.07.2010

Диалект Жар-птицы, вероятно, довольно близок. Начните с этого и при необходимости измените его.

Отказ от ответственности: я не пробовал это. Провайдер ADO.NET будет другим для IB, поэтому теория и практика могут расходиться. Но синтаксис SQL для IB и Firebird меньше отличается от других вариантов в списке.

person Craig Stuntz    schedule 15.07.2010

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

Диалект Firebird работает нормально. Есть несколько вещей (например, обрезка), которые плохо переносятся в interbase sql. Этого можно просто избежать, поскольку преимущества использования ORM перевешивают альтернативы.

В нашей компании мы используем драйвер IBProvider. Не бесплатно, но молниеносно и не вызывает сбоев наших приложений, как ранее использовавшийся драйвер Data Direct. IBProvider использует драйвер oledb, который по умолчанию поддерживается NHibernate.

person SamuelKDavis    schedule 30.03.2014