我目前在我的工作中正在處理三個單獨的MVC項目,並且只在三個中的一箇中反覆遇到此問題。我似乎無法確定它爲什麼會發生。我發現的所有相關問題似乎都涉及使用隨機數生成器或與其無關的東西。對象中的變量不會更新,除非我在調試過程中檢查變量
Anywho,這是我目前遇到的問題。
public void RemoveLotFromDocument(int documentId)
{
Document documentWithLotToDelete = _context.Documents.FirstOrDefault(x => x.Id == documentId);
try
{
documentWithLotToDelete.LotNumber = null;
}
catch
{
throw new Exception();
}
_context.SaveChanges();
}
特別是在try語句中的行。變量沒有被設置爲空,除非我:
- 調試
- 通過代碼逐行
- 步進通過具有對象屬性檢查在Visual Studio中可變擴展
對於實例中,如果我正在調試,在代碼中插入一個斷點,逐句通過try語句,並展開/檢查_context.SaveChanges處的對象,documentWithLotToDelete.LotNumber保持不變。否則,代碼按照預期工作,將對象設置爲null,然後允許我刪除對象(否則,我會得到期望的DELETE語句與REFERENCE約束衝突)。
我讀到的另一個問題是,可能有某種異常被壓制,因此try和catch語句沒有捕捉到任何有趣的事情。
任何想法爲什麼會發生這種情況,或者我可以看看這個項目與我的其他項目可能會有所不同,但沒有這種效果?
能告訴你的DbContext與它們之間的關係的文檔類和土地類和配置? –