2011-09-30 68 views
3

任何人都可以解釋什麼是背後的nHibernate QueryOver沒有拋出異常,當沒有使用的類映射?比方說,我有一個FakeClass類,沒有定義映射,下面的代碼毫無例外地執行。nhibernate QueryOver在映射丟失時不拋出異常

var result = session.QueryOver<FakeClass>() 
        .Where(x => x.Name == "SomeName").List(); 
+0

豈不單元測試有助於你在這裏。我明白它不是你正在尋找的答案,但是單元測試會挑選這個答案。 – Rippo

+0

這是一個很難找到的錯誤,實際上在兩週內我正在開發一個項目,其中一部分是意外工作的。單元測試可能是檢測這類錯誤的正確方法,但我認爲這種測試將不再稱爲單元 - 只是自動的(在我看來)。映射文件存在於另一個程序集中,只是沒有正確地連接到休眠配置。不良行爲表明我們在代碼或配置中創建了一個bug,並且我們也沒有使用Get which throws exception。所以案件並非如此簡單。 – wiero

+0

我也迷失方向,因爲如果它是一個在nhibernate中的錯誤,真的很奇怪它到目前爲止還沒有被發現和修復,但是如果它不是我沒有看到這個「功能」的任何好處。 – wiero

回答

0

FakeClass是否作爲數據庫中的表存在?如果是這樣,我會認爲Fluent的自動映射功能會根據設計映射到它。

+0

沒有沒有fakeclass表..我有超過15K類型在我的測試域,只有477拋出異常時,在表達式中使用:session.CreateCriteria(type).List(); – wiero