【问题标题】:Fluent NHibernate SQL Server 2012流畅的 NHibernate SQL Server 2012
【发布时间】:2014-12-06 18:22:10
【问题描述】:

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

值不能为空。

参数名称:数据源

说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

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

我的配置语法

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>

我尝试了各种方法,但无法解决问题。你有什么建议吗?

【问题讨论】:

  • 当您通过 SSMS 连接到 SQL Server 时,在查询窗口中运行此 SELECT @SERVERNAME,并在您的 Data Source Proerty 中使用返回的值。
  • 我试过了,但还是不行,谢谢。

标签: c# asp.net sql-server sql-server-2012 fluent-nhibernate


【解决方案1】:

&lt;connectionStrings&gt;&lt;appSettings&gt; 不同。

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

你的连接字符串在&lt;connectionStrings&gt;

因此您需要使用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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多