Fluent NHibernate SQL Server 2012

本文关键字:2012 Server SQL NHibernate Fluent | 更新日期: 2023-09-27 18:26:21

我正在开发一个.net项目,当我运行我的项目时,我第一次使用带有fluent nhibernate的SQL Server 2012,我得到了以下错误=>

值不能为null。

参数名称:数据源

描述:在执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误以及错误在代码中的来源的更多信息。

异常详细信息:System.ArgumentNullException:值不能为null。参数名称:数据源

我的配置语法

Fluently.Configure()
   .Database(
      MsSqlConfiguration.MsSql2012.ConnectionString(c => c.FromAppSetting("ConnectionString")))
      .Mappings(m => m.FluentMappings.AddFromAssembly(Assembly.GetExecutingAssembly()))
      .CurrentSessionContext<T>()
      .BuildSessionFactory();

和我在web.config:中的连接字符串

<connectionStrings>
    <add name="ConnectionString" 
         connectionString="Data Source=localhost; Initial Catalog=ExcelReport; Integrated Security=true;" 
         providerName="System.Data.SqlClient" />
</connectionStrings>

我试过各种方法,但都解决不了这个问题。你有什么建议吗?

Fluent NHibernate SQL Server 2012

<connectionStrings><appSettings>不同。

您的连接字符串不在应用程序设置中。

您的连接字符串在<connectionStrings>

因此,您需要使用FromConnectionStringWithKey而不是FromAppSetting

例如:

c => c.FromConnectionStringWithKey("ConnectionString")

您的配置语法应该是:

Fluently.Configure()
   .Database(
      MsSqlConfiguration.MsSql2012.ConnectionString(c => c.FromConnectionStringWithKey("ConnectionString")))
      .Mappings(m => m.FluentMappings.AddFromAssembly(Assembly.GetExecutingAssembly()))
      .CurrentSessionContext<T>()
      .BuildSessionFactory();