我正在尝试使用 Fluent NHibernate(或在必要时直接使用 NHibernate)连接到 Sybase IQ 数据库,但我似乎找不到任何有关要使用的驱动程序、方言和连接字符串的示例或其他输入。
任何帮助,将不胜感激。
谢谢
我正在尝试使用 Fluent NHibernate(或在必要时直接使用 NHibernate)连接到 Sybase IQ 数据库,但我似乎找不到任何有关要使用的驱动程序、方言和连接字符串的示例或其他输入。
任何帮助,将不胜感激。
谢谢
目前没有适用于 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 问题。
是否可以通过 odbc 连接使用(流利的)nhibernate?
或者,在 NHibernate XML 配置文件中指定驱动程序和方言,将以下条目更新为新的方言和驱动程序:
<property name="dialect">Your.NS.IQDialect, Your.DLL</property>
<property name="connection.driver_class">Your.NS.IQClientDriver, Your.DLL</property>