第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何調(diào)試“此帶有計(jì)數(shù) X 的 SqlParameterCollection 的索引 X 無(wú)效”

如何調(diào)試“此帶有計(jì)數(shù) X 的 SqlParameterCollection 的索引 X 無(wú)效”

C#
繁華開(kāi)滿天機(jī) 2023-04-29 15:34:32
我正在開(kāi)發(fā)一個(gè)用 C# 編寫(xiě)并使用 Fluent NHibernate 的項(xiàng)目。我收到臭名昭著的異?!按?SqlParameterCollection 的索引 X 與計(jì)數(shù) X”。我已經(jīng)嘗試了來(lái)自不同 SO解決方案的幾個(gè)建議,但我就是找不到映射問(wèn)題。讀取數(shù)據(jù)時(shí)不會(huì)發(fā)生錯(cuò)誤,只會(huì)在更新時(shí)發(fā)生。正在更新的表非常簡(jiǎn)單,因此該表的地圖也很簡(jiǎn)單。當(dāng)更新發(fā)生時(shí),NHibernate 構(gòu)造一個(gè)簡(jiǎn)單的單表更新查詢,因此當(dāng)錯(cuò)誤發(fā)生時(shí)實(shí)際上并沒(méi)有發(fā)生太多事情。我的更新代碼包含在交易中using (var tx = Session.BeginTransaction()){    try    {         result = PerformUpdate(obj, modifiedBy);         if (result.Succeeded)         {             tx.Commit();             Session.Flush();         }         else              RollbackTransaction(tx);         return result;      }      catch (Exception ex)      {          tx.Rollback();          throw;      }   }}在 tx.Commit() 上拋出異常。我相當(dāng)有信心這是架構(gòu)中某處的映射問(wèn)題,但我找不到它。 如何檢查 SqlParameters 列表以便調(diào)試它?必須有一種方法來(lái)檢查 SqlParameters 列表,以便我可以看到不屬于的內(nèi)容。
查看完整描述

1 回答

?
鴻蒙傳說(shuō)

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊

作為一個(gè)曾不幸與凌亂的遺留 Nhibernate 項(xiàng)目一起工作的人,我提出以下建議,讓你的生活更輕松,并在充滿敵意的領(lǐng)土上生存下來(lái):

1-“如果”您的數(shù)據(jù)庫(kù)是 SQL Server:打開(kāi)SQL Server 探查器并應(yīng)用所需的過(guò)濾器(數(shù)據(jù)庫(kù)名稱和命令文本),以便您看到哪些 sql 命令被準(zhǔn)確傳遞到服務(wù)器。對(duì)我來(lái)說(shuō),這將是起點(diǎn)。

2- 如果 SQL Server 不是你的后端引擎,你在調(diào)試時(shí)最好的朋友是NHibernate 分析器。通過(guò)顯示傳遞給服務(wù)器的每個(gè)參數(shù)的值以及最終查詢,這正是您要查找的內(nèi)容。它還顯示打開(kāi)的會(huì)話以及它們是否關(guān)閉。你可以下載試用版看看。

3- 對(duì)于未來(lái)的代碼手術(shù),始終將您的項(xiàng)目配置為按需打開(kāi)跟蹤:使用Nhibernate 跟蹤 NLog以記錄正在傳遞給 sql server 的 sql 語(yǔ)句并將它們保存在單獨(dú)的日志中。

上面的工具和建議是我會(huì)嘗試的,如果我被困在你的情況下。

作為最后的提示:如果您使用上述方法未能找到問(wèn)題,請(qǐng)自行解決問(wèn)題并使用您自己的 SQL 本機(jī)語(yǔ)句運(yùn)行更新。有時(shí)弄清楚為什么 NHibernate 沒(méi)有生成所需的 SQL 語(yǔ)句比手動(dòng)創(chuàng)建和執(zhí)行更新語(yǔ)句花費(fèi)更多的時(shí)間。這是你的最后一槍。聽(tīng)起來(lái)可能不干凈,但大多數(shù) NHibernate 項(xiàng)目無(wú)論如何都不干凈。


查看完整回答
反對(duì) 回復(fù) 2023-04-29
  • 1 回答
  • 0 關(guān)注
  • 112 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)