现在的位置: 首页 > 综合 > 正文

在nhibernate 1.2 中使用sqlite时应注意sqlite的ado.net的提供者

2013年08月04日 ⁄ 综合 ⁄ 共 3033字 ⁄ 字号 评论关闭

Finisar.SQLite.SQLiteConnection

情况:我想存储少量的数据,在数据库,

2,并且使用nhibernate

nhibernate对access的支持算不上好,所以我就选择使用了sqlite,但是同样的代码在ms sql server上能通过但就是就对sqlite通过不过,通过一步,步地跟踪发现sqlite的构造函数是如下的情况

public SQLiteDriver() : base(
   "SQLite.NET",
   "Finisar.SQLite.SQLiteConnection",
   "Finisar.SQLite.SQLiteCommand")
  {
  }

经检查是我使用了http://sourceforge.net/projects/sqlite-dotnet2这里的dll

而nhibernate中sqlite中使用的sqlite的dll却是使用的

http://sourceforge.net/projects/adodotnetsqlite的这个版本,

因为dll不对,所以经常出现不能 could not create driver from ***这个错误,在使用这个版本的时候,我们应将SQLite3.dll这个dll拷贝到执行目录下,不然的话,会出错

 这是使用sqlite时用到的配置文件,(注,只适用于nhibernate 1.2版本,其它版本请不要参考)

 

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    
<configSections>
        
<section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
        
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
    
</configSections>

    
<nhibernate>
    
<!--    
       
<add key="hibernate.show_sql"
            value
="true" />
        
<add key="hibernate.connection.provider"
            value
="NHibernate.Connection.DriverConnectionProvider" />

        
<add key="hibernate.dialect"
             value
="NHibernate.Dialect.MsSql2000Dialect" />

        
<add key="hibernate.connection.driver_class"
             value
="NHibernate.Driver.SqlClientDriver" />

        
<add key="hibernate.connection.connection_string"
             value
="Server=.cxy;database=mytest;uid=sa;pwd=cxy" />
    
-->
        
<add key="hibernate.show_sql"
            value
="true" />
        
<add key="hibernate.connection.provider"
            value
="NHibernate.Connection.DriverConnectionProvider" />

        
<add key="hibernate.dialect"
             value
="NHibernate.Dialect.SQLiteDialect" />

        
<add key="hibernate.connection.driver_class"
             value
="NHibernate.Driver.SQLiteDriver" /> 

        
<add key="hibernate.connection.connection_string"
             value
="Data Source=cxy.db;Version=3" />

        
<add key="hibernate.query.substitutions"
                value
="true=1;false=0" />
        
        
    
</nhibernate>

    
<!-- This section contains the log4net configuration settings -->
    
<log4net>

        
<!-- Define some output appenders -->

        
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" >

            
<param name="File" value="log.txt" />
            
<param name="AppendToFile" value="true" />
            
<param name="RollingStyle" value="Date" />
            
<param name="DatePattern" value="yyyy.MM.dd" />
            
<param name="StaticLogFileName" value="true" />

            
<layout type="log4net.Layout.PatternLayout,log4net">
                
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] &lt;%X{auth}&gt; - %m%n" />
            
</layout>
        
</appender>

        
<!-- Setup the root category, add the appenders and set the default priority -->

        
<root>
            
<priority value="ALL" />
            
<appender-ref ref="rollingFile" />
        
</root>

    
</log4net>


</configuration>

抱歉!评论已关闭.