我已经通过并调试了我的代码,并且正在传递给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