Code: Select all
namespace PostgresDriver.DbDriver
{
class DevartPgDriver : ReflectionBasedDriver
{
public DevartPgDriver()
: base(
//"Devart.Data.PostgreSql",
"Devart.Data.PostgreSql",
"Devart.Data.PostgreSql.PgSqlConnection",
"Devart.Data.PostgreSql.PgSqlCommand")
{
}
public override string NamedPrefix
{
get { return ":"; }
}
public override bool UseNamedPrefixInParameter
{
get { return true; }
}
public override bool UseNamedPrefixInSql
{
get { return true; }
}
public override bool SupportsMultipleOpenReaders
{
get { return false; }
}
protected override bool SupportsPreparingCommands
{
get { return true; }
}
public override IResultSetsCommand GetResultSetsCommand(NHibernate.Engine.ISessionImplementor session)
{
return new BasicResultSetsCommand(session);
}
public override bool SupportsMultipleQueries
{
get { return true; }
}
protected override void InitializeParameter(IDbDataParameter dbParam, string name, NHibernate.SqlTypes.SqlType sqlType)
{
base.InitializeParameter(dbParam, name, sqlType);
// Since the .NET currency type has 4 decimal places, we use a decimal type in PostgreSQL instead of its native 2 decimal currency type.
if (sqlType.DbType == DbType.Currency)
dbParam.DbType = DbType.Decimal;
}
}
}
Code: Select all
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<qualifyAssembly partialName="Devart.Data.PostgreSql"
fullName="Devart.Data.PostgreSql, Version=7.2.80.0, Culture=neutral, PublicKeyToken=09af7300eec23701">
</qualifyAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<qualifyAssembly partialName="Devart.Data"
fullName="Devart.Data, Version=5.0.872.0, Culture=neutral, PublicKeyToken=09af7300eec23701">
</qualifyAssembly>
</assemblyBinding>
</runtime>
Code: Select all
<session-factory name="NHSessionFactory">
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">PostgresDriver.DbDriver.DevartPgDriver, Devart.Data.PostgreSql</property>
<property name="dialect">NHibernate.Dialect.PostgreSQL82Dialect</property>
<property name="connection.connection_string">User Id=***;Password=***;Host=localhost;Port=5433;Database=***;</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property
</session-factory>
Code: Select all
sessionFactory = cfg.BuildSessionFactory();
Code: Select all
"Could not load type 'PostgresDriver.DbDriver.DevartPgDriver' from assembly 'Devart.Data.PostgreSql, Version=7.2.80.0, Culture=neutral, PublicKeyToken=09af7300eec23701'."
Code: Select all
NHibernate.Driver.ReflectionBasedDriver.ReflectionTypedProviderExceptionMessageTemplate
"The IDbCommand and IDbConnection implementation in the assembly {0} could not be found. Ensure that the assembly {0} is located in the application directory or in the Global Assembly Cache. If the assembly is in the GAC, use <qualifyAssembly/> element in the application configuration file to specify the full name of the assembly."