NHibernate引发异常“数据源不能为空”?

时间:2018-09-04 13:07:05

标签: c# sqlite asp.net-core nhibernate in-memory-database

我是NHibernate的新手,正在尝试让我的第一个应用程序与NHibernate + SQLite一起使用-内存数据库。

到目前为止,我已经完成了以下操作

hibernate.cfg.xml

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration  xmlns="urn:nhibernate-configuration-2.2" >
  <reflection-optimizer use="true"/>
  <session-factory>
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
    <property name="connection.driver_class">NHibernate.Driver.SQLite20Driver</property>
    <property name="connection.connection_string">"Data Source=:memory:;Version=3;New=True;"</property>
    <property name="dialect">NHibernate.Dialect.SQLiteDialect</property>
    <property name="connection.release_mode">on_close</property>
    <property name="query.substitutions">true=1;false=0</property>
    <property name="show_sql">true</property>
  </session-factory>
</hibernate-configuration>

Hibernate.cs

public NHibernate.ISessionFactory Hibernate()
        {
            NHibernate.Cfg.Configuration cfg = new NHibernate.Cfg.Configuration();
            cfg.Configure(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "hibernate.cfg.xml"));

            cfg.AddAssembly(System.Reflection.Assembly.GetExecutingAssembly());

            var sessionFactory = cfg.BuildSessionFactory();

            return sessionFactory;
        }

现在,当我调用 Hibernate()函数时,以下行将引发异常,

var sessionFactory = cfg.BuildSessionFactory();

例外: System.ArgumentException:'数据源不能为空。使用:memory:打开内存数据库'

我已经尝试修复此问题已经有一段时间了,我尝试使用不同的连接字符串,但是我没有运气。任何建议/指导将不胜感激。

非常感谢。

1 个答案:

答案 0 :(得分:0)

我怀疑配置文件中连接字符串属性的值是否应该用双引号引起来。