2011-05-15 21 views
2

我試圖按照this教程,但與調試一直問我要了一個名爲 FluentConfiguration.cs當它到達此行的文件:試圖讓流利的NHibernate工作,什麼是FluentConfiguration.cs?

return Fluently.Configure() 
    .Database(MySQLConfiguration.Standard 
    .ConnectionString(c => c 
     .Server("localhost") 
     .Database("test") 
     .Username("root") 
     .Password("w1e2a3r4"))) 
    .Mappings(m => m 
     .AutoMappings.Add(model)) 
    .ExposeConfiguration(BuildSchema) 
     .BuildSessionFactory(); 

我所有的代碼是完全等同於教程的除這一行(我使用MySql)。我三重檢查的參數,它應該是確定..
我得到的是一個對話框,詢問我找到FluentConfiguration.cs,當它沒有找到它它給:

An invalid or incomplete configuration was used while creating a SessionFactory.  
Check PotentialReasons collection, and InnerException for more detail. 

我試圖複製此文件從here,但這並沒有工作。

我在這裏錯過了什麼?
技術信息 - 我使用VS 2010速成,ASP.NET MVC3,MySQL服務器5.5和連接器:6.3.6

編輯:
這是內部異常的消息:
無法創建來自NHibernate.Driver.MySqlDataDriver的驅動程序,NHibernate,Version = 2.1.2.4000,Culture = neutral,PublicKeyToken = aa95f207798dfdb4。

編輯2:
現在我得到「校驗和不匹配:
爲找到源 'd:\構建\ FluentNH的\ src \ FluentNHibernate \ CFG \ FluentConfiguration.cs' 校驗:MD5 {94 f4 4c 43 49 bd 48 fb 9a d7 b2 fc 5 e1 4e d8} 確定校驗和是否匹配以下位置: 1:C:\ Users \ Oren \ Desktop \ FluentConfiguration.cs校驗和:MD5 {84 33 30 45 11 da 3d 40 8e 2d 3c a9 e 7c cc 14}校驗和不匹配 文件'd:\ Builds \ FluentNH \ src \ FluentNHibernate \ Cfg \ FluentConfiguration.cs'不存在 查看腳本'd:\ Builds \ FluentNH \ src \ FluentNHibe文件rnate \ Cfg \ FluentConfiguration.cs'... 尋找'd:\ Builds \ FluentNH \ src \ FluentNHibernate \ Cfg \ FluentConfiguration.cs'的項目。 該文件在項目中找到:'C:\ Users \ Oren \ Desktop \ FluentConfiguration.cs'。 確定校驗和是否與以下位置匹配: 1:C:\ Users \ Oren \ Desktop \ FluentConfiguration.cs校驗和:MD5 {84 33 30 45 11 da 3d 40 8e 2d 3c a9 e 7c cc 14} Checksum doesn' t匹配。在目錄'C:\ Program Files \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ vc7 \ crt'中查找目錄' '... 在目錄'C:\ Users \ Oren \ Desktop \'中查找... 活動解決方案的調試源文件設置指示調試器不會要求用戶查找該文件:d:\ Builds \ FluentNH的\ src \ FluentNHibernate \ CFG \ FluentConfiguration.cs。 調試器找不到源文件'd:\ Builds \ FluentNH \ src \ FluentNHibernate \ Cfg \ FluentConfiguration.cs'。

+0

我懷疑你的具體錯誤是由於NHibernate無法解決Mysql.Data程序集(這是Mysql的ADO提供程序)。嘗試將其添加到項目引用路徑中,或者(不太優先)將其添加到二進制文件的工作目錄中 – fostandy 2011-05-15 10:28:50

+0

感謝您的評論,我認爲這讓我略微前進,但問題還沒有解決。請參閱我的第二次編輯。謝謝。 – 2011-05-15 14:39:29

回答

1

複製粘貼了流暢的Hibernate dll和pdbs,問題解決了。

0

調試器正在爲Fluent nHibernate請求一個源文件。你可以下載它,因爲它是開源的並且詳細調試它,儘管答案在InnerException中。

這可能是由於未映射的類或可能的屬性未標記爲虛擬,或者僅僅是不遵循標準FNH約定的數據庫表導致的。您需要進入InnerException並閱讀它所說的內容,因爲nHibernate異常通常非常有用。當我嘗試運行運行MSTest的單元測試時,遇到內部異常時遇到了很多問題。我切換回nUnit並沒有麻煩。

另一個非常有用的事情是在配置過程中輸出你的.hbm文件(FNH在後臺爲你生成這些文件)。詳細信息請參見Generate XML mappings from fluent Nhibernate。注意:我通常會添加一個編譯器指令來確保我只在調試版本中輸出.hbm文件。

+0

你能指導我在內部異常中尋找什麼嗎?我在問題中加入了唯一我認爲可能有用的問題,但我無法真正看到原因。 – 2011-05-15 05:31:39

+0

@fostandy是正確的。內部異常表示mySQL驅動程序加載不正確。您應該看看程序集是否將其放入站點的bin目錄中。 – 2011-05-15 21:39:02

+0

至於你的第二次編輯,該消息只是Visual Studio試圖找到源文件,以便它可以調試錯誤。 – 2011-05-15 21:45:07

1

解決此問題。我不得不添加一個參考NHibernate.ByteCode.Castle.dll