2009-10-12 76 views
3

我用我的項目NHibernate(2.0.1GA)。在運行時,我得到了如何調試NHibernate映射?

Invalid Cast (check your mapping for property type mismatches); 
[...] 

所以它只能說它無法施放任何東西。這有點不莊重。

我的映射文件非常大(主表大約有50個柱子和11個子集)。如何查找無效的投射而不檢查其中的每一行與相應的類&表??

回答

1

獲取pdbs(或只是獲取源代碼),並找出異常第一次被拋出的位置,然後在堆棧跟蹤中回溯,直到看到它正在嘗試投射的內容。

+0

也許你可以進一步解釋一下。因爲我對.NET相對比較陌生。 我知道pdbs所在的位置,但我該如何「找出異常首先被拋出的位置,並將其放回堆棧跟蹤」?對不起,我很可能不喜歡... – 2009-10-12 13:01:17

+0

@ MAD9在Visual Studio中,當您調試時,您可以告訴IDE在拋出異常時中斷。如果你有包含pdbs的話,它會在NH代碼中破解,所以你可以看到異常發生。此外,Visual Studio中還有一個堆棧跟蹤窗口,允許您查看爲達到該點而採取的順序。您可以雙擊序列中的任何行項目,它會跳回/轉到該點,以便您可以在堆棧中查看該級別的信息。 – Joseph 2009-10-12 13:06:03

+0

這是否也適用於C#Express Edition? – 2009-10-12 13:07:28

0

當您運行特定請求時會發生這種情況嗎?然後你有一個更受限制的嫌疑犯集:-):只有表格和列暗示...

我傾向於從請求中拿走表,發現哪些表有問題。 然後可能用於域同樣的態度...


否則,如果它發生在你的NHibernate的驗證所有的實體,您可以使用二分法來定位你的問題。