我已經通過並調試了我的代碼,並且正在傳遞給GetItem()
方法的ID是我期望獲得的培訓計劃的ID和自定義表類名稱正確的是(這是獲得正確的自定義表。 但是返回的項目是在自定義表中的第一項(我看了在數據庫中)不能與已輸入的ID的項目。CustomTableItemProvider.GetItem()返回錯誤的項目
int id = parameter.ID;
CustomTableItemProvider provider = new CustomTableItemProvider(CMSContext.CurrentUser);
entity = provider.GetItem(id, TrainingPlanConstants.TrainingPlanTableName);
無論輸入什麼整數值,都會返回這個不相關的自定義表項。我使用GetItems()方法完成了一項工作 - 但這並不理想,因爲我知道我需要哪個CustomTableItem,並且此工作區這是一個不必要的循環。
(第7版)
你可以檢查當你調用'GetItem()'時查詢的樣子嗎? http://devnet.kentico.com/docs/7_0/devguide/index.html?sql_queries_debugging.htm當你用Guid調用重載時會發生什麼? – rocky
@ Mutton92老實說,節省一些時間和麻煩,只需在Kentico中爲您的CRUD操作設置LINQ to SQL或EF類,尤其是定製表格。它比Kentico的API更加靈活,它們非常易於安裝,並且您可以自己製作查詢,而不是試圖找出黑盒子裏正在發生的事情。 – Jerreck
@Jerreck我有一個用於從自定義表中獲取項目的所有操作的DLL(這是我正在更新的)。它是由我的線路經理多年前完成的,並更新了Kentico的新版本。顯然他已經知道GetItem()函數的問題一段時間,並且剛剛在DLL中使用了GetItems()方法,我只是認爲我會修復我們的DLL,因此它實際上起作用,因爲另一個開發人員已經在整個站點中使用它不知道它不能正常工作!我已經在DLL中使用LINQ修復了它,但是Kentico應該知道該方法沒有按預期工作! – Mutton92