我正在尝试使用Fluent NHibernate(或必要时直接使用NHibernate)连接到Sybase IQ数据库,但我似乎找不到任何关于要使用的驱动程序,方言和连接字符串的示例或其他输入。
任何帮助都将不胜感激。
由于
答案 0 :(得分:1)
Sybase IQ目前没有NH驱动程序或方言,但编写自己的驱动程序或方言非常简单。
对于方言,您可以尝试使用通用方言,如果这不是一个合适的方言,那么您将不得不调整一种现有的方言。请查看以下链接,了解当前方言的来源:
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问题。
Is it possible to use (fluent)nhibernate with an odbc connection?
或者,在NHibernate XML配置文件中指定驱动程序和方言,将以下条目更新为新方言和驱动程序:
<property name="dialect">Your.NS.IQDialect, Your.DLL</property>
<property name="connection.driver_class">Your.NS.IQClientDriver, Your.DLL</property>