C# NHibernate null id in Table ( dont' flush the Session after an exception occurs)

RojerChen.2013.12.30

最近有一個專案是用 NHibernate + Spring.NET,當程式在跑某功能的時候,有時候會成功有時候會失敗,當失敗的時候會跳出 Could not insert ...的錯誤訊息,追了一下最初發生錯誤的原因是 null id in Table ( dont' flush the Session after an exception occurs)。

我是這樣檢查的:


1.檢查 DB 欄位是否有改為唯一並且自動跳號
2.檢查 insert 時的所有欄位資料

最後發現到是 insert 時,資料來源長度的問題,比方說 DB 設定長度為 15,但是你的資料來源長度為 20 這樣就會發生錯誤,不過這錯誤訊息有點誤導,讓我往別的方向查,多花了不少時間。

    Blogger Comment

0 意見: