1 回答
TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
作為一個(gè)曾不幸與凌亂的遺留 Nhibernate 項(xiàng)目一起工作的人,我提出以下建議,讓你的生活更輕松,并在充滿敵意的領(lǐng)土上生存下來:
1-“如果”您的數(shù)據(jù)庫是 SQL Server:打開SQL Server 探查器并應(yīng)用所需的過濾器(數(shù)據(jù)庫名稱和命令文本),以便您看到哪些 sql 命令被準(zhǔn)確傳遞到服務(wù)器。對我來說,這將是起點(diǎn)。
2- 如果 SQL Server 不是你的后端引擎,你在調(diào)試時(shí)最好的朋友是NHibernate 分析器。通過顯示傳遞給服務(wù)器的每個(gè)參數(shù)的值以及最終查詢,這正是您要查找的內(nèi)容。它還顯示打開的會(huì)話以及它們是否關(guān)閉。你可以下載試用版看看。
3- 對于未來的代碼手術(shù),始終將您的項(xiàng)目配置為按需打開跟蹤:使用Nhibernate 跟蹤 NLog以記錄正在傳遞給 sql server 的 sql 語句并將它們保存在單獨(dú)的日志中。
上面的工具和建議是我會(huì)嘗試的,如果我被困在你的情況下。
作為最后的提示:如果您使用上述方法未能找到問題,請自行解決問題并使用您自己的 SQL 本機(jī)語句運(yùn)行更新。有時(shí)弄清楚為什么 NHibernate 沒有生成所需的 SQL 語句比手動(dòng)創(chuàng)建和執(zhí)行更新語句花費(fèi)更多的時(shí)間。這是你的最后一槍。聽起來可能不干凈,但大多數(shù) NHibernate 項(xiàng)目無論如何都不干凈。
- 1 回答
- 0 關(guān)注
- 134 瀏覽
添加回答
舉報(bào)
