2013-10-18 28 views
1

我突然收到錯誤:「無法找到名爲'MyLib.Project'的實體的persister。」無法找到該實體的persister,沒有代碼已更改

自上次發佈以來,我沒有對該項目進行任何代碼更改。我進入代碼看它的原因是因爲用戶報告說使用這個庫的網頁發生了錯誤。我也檢查了供應商的熱切加載(NHibernate - Random occurrences of "Unable to locate persister"),但我已經急於加載。

而且,我甚至改變了我的數據提供商配置:

.Mappings(Function(x) x.FluentMappings.AddFromAssemblyOf(Of Project)()) 

我通過代碼加強,實際上看到它找到項目的映射,並通過它一步。在構建提供程序時沒有發生異常,但是當我嘗試從數據庫獲取項目時,Web應用程序仍然失敗。

更新 我已經測試了這個完全相同的代碼與桌面應用程序,它工作得很好。在我看來,問題一定是NHibernate和Web應用程序。有沒有人對此有任何想法?

+0

關閉解決方案並重新打開它 - 它仍然是錯誤的? – OneFineDay

+0

是的,即使重新打開解決方案後,此問題仍然存在。 – Origin

+0

記錄內部異常,無論發生此錯誤。內部異常通常會告訴你原因是什麼 – MichaC

回答

0

這個答案當然是我犯了一個錯誤。

我在同一個程序中使用了兩個會話工廠,並將錯誤的工廠會話傳遞給了我的一個函數。所以錯誤是正確的,因爲它通過的會話不知道Project類型。我最終通過查看我查詢的會話的Connection屬性發現了這一點。

希望這可以幫助其他可能犯過同樣錯誤的人。

相關問題