从Kentico数据库读取未声明为';自定义表格';
我的问题很简单。我正在使用Kentico 9及其SQL Server数据库进行工作,该数据库包含由外部承包商直接从SQL Management Studio添加的几个表。事实上,这些表用于存储将为站点显示的自定义内容,但在代码中,它们没有用于进行查询的代码。我的意思是,他们没有信息和提供者课程 根据这一点,Kentico数据库中的所有表都可以通过调用这些类上的方法来访问,但这次我没有 类似于此,如果我使用我的表名,它将不起作用:从Kentico数据库读取未声明为';自定义表格';,kentico,Kentico,我的问题很简单。我正在使用Kentico 9及其SQL Server数据库进行工作,该数据库包含由外部承包商直接从SQL Management Studio添加的几个表。事实上,这些表用于存储将为站点显示的自定义内容,但在代码中,它们没有用于进行查询的代码。我的意思是,他们没有信息和提供者课程 根据这一点,Kentico数据库中的所有表都可以通过调用这些类上的方法来访问,但这次我没有 类似于此,如果我使用我的表名,它将不起作用: var user = UserInfoProvider.GetU
var user = UserInfoProvider.GetUserInfo("administrator");
var items = CustomTableItemProvider.GetItems("MyTable")
.TopN(10)
.WhereEquals("ItemCreatedBy", user.UserID)
.OrderBy("ItemCreatedWhen");
我的问题是:
我可以按名称查询任何表吗?
最后一件事:
我不能将这些表声明为“自定义表”,因为它似乎是CMS中的一个bug。我认为必须在系统中注册一个对象(通过Kentico UI或API创建),才能使用对象查询从DB中提取 因此,我会选择以下选项之一:
希望这能有所帮助。我认为必须在系统中注册一个对象(通过Kentico UI或API创建),才能使用对象查询从数据库中提取 因此,我会选择以下选项之一:
希望这有帮助。或者您可以使用自己的SQL查询提取数据:
var ds = ConnectionHelper.ExecuteQuery("select ....", null, QueryTypeEnum.SQLQuery);
尽管如此,我还是建议您在自定义模块内创建一个自定义类(比自定义表更健壮),并使用生成的Info和InfoProvider类获取和操作数据。或者您可以使用自己的SQL查询提取数据:
var ds = ConnectionHelper.ExecuteQuery("select ....", null, QueryTypeEnum.SQLQuery);
尽管如此,我还是建议您在自定义模块内创建一个自定义类(比自定义表更健壮),并使用生成的Info和InfoProvider类来获取和操作数据。如果您是在代码中访问,那么您可以使用传统的好方法。如果您想从数据库中提取数据以显示在网站上,您也可以通过创建并使用转换来显示字段,然后在页面上使用转发器来显示转换后的数据。或者,您可以使用带有基本转发器的SQL数据源,但仍然需要创建转换来显示数据。这两种方法都允许您从CMS UI中访问表中的数据,无需触摸任何代码。如果您是在代码中访问数据,那么您可以使用传统的好方法。如果您想从数据库中提取数据以显示在网站上,您也可以通过创建并使用转换来显示字段,然后在页面上使用转发器来显示转换后的数据。或者,您可以使用带有基本转发器的SQL数据源,但仍然需要创建转换来显示数据。这两种方法都允许您从CMS UI中访问表中的数据,无需触摸任何代码。如果您的目标是从这些数据库表中读取数据以在网页上进行转换,例如使用CMS Repeater webpart,您只需在Kentico本身中创建自定义查询并使用它加载数据即可。您可以找到有关如何创建自定义查询和使用它加载数据的详细信息 另一方面,您还可以编写自定义类并定义自定义方法,在这些方法中,您可以使用自己的SQL查询提取数据,如下所示: var ds=ConnectionHelper.ExecuteQuery(“选择…”),null,QueryTypeEnum.SQLQuery)
最后,我认为创建自定义表而不是直接的DB表不应该有任何问题,我们唯一需要确保自定义表的代码名应该是唯一的,这意味着不要尝试使用完全相同的名称,因为它会导致异常,因为DB中已经存在相同的表名。您可以分享在创建自定义表时遇到的异常,以便我可以进一步帮助您。如果您的目标是从这些数据库表中读取数据以在网页上转换,例如使用CMS Repeater webpart,您只需在Kentico自身中创建自定义查询并使用它加载数据即可。您可以找到有关如何创建自定义查询和使用它加载数据的详细信息 另一方面,您还可以编写自定义类并定义自定义方法,在这些方法中,您可以使用自己的SQL查询提取数据,如下所示: var ds=ConnectionHelper.ExecuteQuery(“选择…”),null,QueryTypeEnum.SQLQuery)
最后,我认为创建自定义表而不是直接的DB表不应该有任何问题,我们唯一需要确保自定义表的代码名应该是唯一的,这意味着不要尝试使用完全相同的名称,因为它会导致异常,因为DB中已经存在相同的表名。您可以分享创建自定义表时遇到的异常,以便我可以进一步帮助您。嗨,Roman,事实上,您的第一个选择就是我正在做的事情。我开始考虑使用ORM来管理这些表。当我尝试注册为自定义表时遇到的问题是,当我选择“使用现有数据库表”时,我无法在下面的组合框“数据库表名称:”中添加任何内容。我从未尝试创建基于数据库的自定义表