В настоящее время нет драйвера NH или диалекта для Sybase IQ, но довольно легко написать свой собственный.
Для диалекта вы можете попробовать использовать общий диалект, если он не подходит, вам придется адаптировать один из существующих диалектов. Пожалуйста, взгляните на ссылку ниже, чтобы найти источник текущих диалектов:
https://github.com/nhibernate/nhibernate-core/tree/master/src/NHibernate/Dialect
Для драйвера самый простой вариант - унаследовать от ReflectionBasedDriver
. Ниже приведен пример класса о том, как это сделать:
public class IQClientDriver : NHibernate.Driver.ReflectionBasedDriver
{
public IQClientDriver()
: base("Full namespace + DB Provider name here",
"Full namespace + DB Connection class here",
"Full namespace + DB Command class here")
{ }
public override bool UseNamedPrefixInSql
{ get { /* return true when the parameter names in SQL statements require a prefix */ } }
public override bool UseNamedPrefixInParameter
{ get { /* return true when the parameters names require a prefix */ } }
public override string NamedPrefix
{ get { /* return the parameters prefix string */ } }
}
Чтобы иметь возможность настроить Fluent Hibernate для использования этого нового драйвера и диалекта, необходимо будет создать класс конфигурации, унаследовав от PersistenceConfiguration
. Дополнительную информацию см. В следующем вопросе SO.
Можно ли использовать (свободно) nhibernate с odbc подключение?
В качестве альтернативы, чтобы указать драйвер и диалект в файле конфигурации NHibernate XML, обновите следующие записи до нового диалекта и драйвера:
<property name="dialect">Your.NS.IQDialect, Your.DLL</property>
<property name="connection.driver_class">Your.NS.IQClientDriver, Your.DLL</property>
12.08.2013