2014-10-11 91 views
2

我正在开发一个.NET项目,我用流利的NHibernate的第一次SQL Server 2012中,当我跑我的项目,我碰到下面的错误=>功能NHibernate的SQL Server 2012

值不能为空。

参数名:数据源

说明:在当前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> 

我已经试过各种方法,但我无法修复的问题。你有什么建议吗?

+0

当您连接到SQL Server通过SSMS,运行这个'SELECT @ SERVERNAME'在一个查询窗口,并使用数据源Proerty中返回的值。 – 2014-10-11 20:29:44

+0

我试过了,但不起作用谢谢。 – Eren 2014-10-11 21:00:20

回答

2

<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(); 
+1

是的这是作品谢谢你的帮助。 – Eren 2014-10-12 13:59:24