2014-10-11 88 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