我通过控制台应用程序使用 Kentico API 7,有以下内容:
String connectionString = CMS.DataEngine.ConnectionHelper.GetConnectionString("MyConnString");
Console.WriteLine("connectionString ? " + connectionString);
//CMS.DataEngine.GeneralConnection
CMS.DataEngine.GeneralConnection conn = CMS.DataEngine.ConnectionHelper.GetConnection(connectionString);
conn.Open();
Console.WriteLine("connection is open? " + conn.IsOpen());
CMS.CMSHelper.CMSContext.Init();
Console.WriteLine("CurrentSiteID " + CMS.CMSHelper.CMSContext.CurrentSiteID);
连接已打开。我收到错误Console.WriteLine("CurrentSiteID " + CMS.CMSHelper.CMSContext.CurrentSiteID);
表示连接未初始化。有帮助吗?
当然可以在 Kentico 本身之外使用 Kentico API。最近,我发表了一篇article http://devnet.kentico.com/articles/take-advantage-of-kentico%E2%80%99s-nuget-feed-and-build-your-own-apps关于这个话题。然而,本文展示了新版本 Kentico 的可能性。但回到你的问题...
The CMS.CMSHelper.CMSContext.Init();
方法期望 app.config 或 web.config 中存在名为“CMSConnectionString”的连接字符串。
The 文档 http://devnet.kentico.com/docs/7_0/devguide/index.html?using_api_and_cms_controls_outside_cms_project.htm还说
您可以在应用程序生命周期中的任何时刻调用此方法,但它必须在使用任何其他 Kentico CMS API 之前发生。
所以你不应该碰CMS.DataEngine
或任何其他CMS.*
调用之前的命名空间CMSContext.Init()
。
调用该方法后,您可以开始使用无参数重载ConnectionHelper.GetConnection()
但我建议你利用信息提供者模式 http://devnet.kentico.com/docs/7_0/devguide/database_table_api.htmKentico 提供的而不是使用直接数据库访问CMS.DataEngine
.
例如,您可以这样删除用户 http://devnet.kentico.com/docs/7_0/devguide/membership_api_examples_managing_users.htm?zoom_highlightsub=userinfoprovider:
// Get the user
UserInfo deleteUser = UserInfoProvider.GetUserInfo("MyNewUser");
// Delete the user
UserInfoProvider.DeleteUser(deleteUser);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)