我有一張表格,裏面有關於汽車的信息(我們稱之爲tbl_incoming_car)。該表具有一個名爲'customer_number'的非唯一列,顯示目前進入系統的汽車數量。同一輛車可以進出很多次,但是這隻能登記一次。用EF代碼優先鎖定
所以,當一輛新車進場時,我需要得到最後一輛車的號碼,將其增加,然後將其保存爲新車的'客戶號碼'。
我知道最簡單的方法是爲汽車設置一張分開的桌子,在那裏設置'customer_number',然後在其他桌子上註冊,但這僅僅是一個暴露情況的愚蠢示例。所以沒有必要討論這種方法是錯誤的,我知道已經:)
正如我所說,每次有新車進入系統,我必須得到最新添加的行,得到'customer_number ',將其增加並保存爲原子操作。其他應用程序實例可能會嘗試做同樣的事情,並且數據庫必須在「創建任務」期間保存最後添加的行的請求。
我認爲我可以通過將隔離級別設置爲可序列化,但我認爲它不會阻止讀取最後一行,而是阻止從插入新行。所以它看起來像是鎖定解決方案。我已經嘗試在代碼中使用靜態對象作爲監視器,並且它工作正常,但它當然僅限於相同的應用程序域,我需要在數據庫級別的東西。
我不認爲在EF中有什麼東西可以在數據庫上設置鎖定,所以這將是在表格上設置鎖定並稍後釋放的最佳方式?
謝謝。
謝謝你的-1,但我會愛是理由指出。 – vtortola 2013-04-17 09:35:14
我不能給你理由,但這裏是我的+1而不是 – galets 2014-06-18 16:24:02
謝謝@galets :) – vtortola 2014-06-18 16:24:35