2

我有这个问题,在我的程序中我动态设置服务器地址并尝试连接到我的数据库,如果我提供的地址正确,它可以正常工作,如果不正确,则无法连接,这是正常的。之后我想更改此地址,但即使我在代码中更改它并尝试再次连接我的数据库,它仍然会记住旧配置并且仍然无法连接。我应该怎么做才能改变它?

我这样设置我的配置:

XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
        foreach (XmlElement element in xmlDoc.DocumentElement)
        {
            if (element.Name.Equals("ideablade.configuration"))
            {
                foreach (XmlNode ele in element.ChildNodes)
                {
                    if (ele.Name == "objectServer")
                    {
                        var node = ele;
                        node.Attributes["remoteBaseURL"].Value = remoteBaseURL;
                        node.Attributes["serverPort"].Value = serverPort;
                        node.Attributes["serviceName"].Value = serviceName;
                    }
                }
            }
        }
        xmlDoc.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
        ConfigurationManager.RefreshSection("ideablade.configuration");

我尝试像这样连接到我的数据库

if (BeczkaModel!= null)
        {
            BeczkaModel.Disconnect();
            BeczkaModel= null;
        }

IdeaBladeConfig.Instance.ObjectServer.RemoteBaseUrl = remoteBaseURL;
IdeaBladeConfig.Instance.ObjectServer.ServerPort = (int)double.Parse(serverPort);
IdeaBladeConfig.Instance.ObjectServer.ServiceName = serviceName;
IdeaBladeConfig.Instance.ObjectServer.ClientSettings.IsDistributed=true;

BeczkaModel= new BeczkaContainer();
BeczkaModel.AuthorizedThreadId = null;  
BeczkaModel.Connect();
4

3 回答 3

2

数据源密钥扩展和/或自定义 IDataSourceKeyResolver 是处理不同数据库连接的方法。重要的是要意识到 EntityManager.Connect 调用没有连接到特定的数据源。它实际上是连接到一个特定的 EntityService。连接到不同 EntityService URL 的方法是使用 ServiceKey。更多信息在这里: http ://drc.ideablade.com/devforce-2012/bin/view/Documentation/connect-to-multiple-entityservers 。

于 2013-03-01T03:09:25.277 回答
1

为了澄清sbellini的帖子,有两种方法可以动态确定数据库连接。第一种也是更简单的方法是使用数据源扩展。如果您有一个静态的数据库连接列表并希望在运行时在列表中进行选择,这将非常有用。第二种方法是实现 IDataSourceKeyResolver。这允许您在运行时完全确定连接字符串。

http://drc.ideablade.com/devforce-2012/bin/view/Documentation/data-sources

http://drc.ideablade.com/devforce-2012/bin/view/Documentation/code-sample-data-source-extensions

http://drc.ideablade.com/devforce-2012/bin/view/Documentation/code-sample-custom-datasourcekeyresolver

于 2013-02-28T00:54:14.883 回答
1

您将能够通过实现自定义 DataSourceKeyResolver 来确定要连接到哪个数据库。

您将在 http://drc.ideablade.com/devforce-2012/bin/view/Documentation/data-sources 找到更多信息,在http://drc.ideablade.com/devforce-2012/bin/view找到示例/Documentation/code-sample-custom-datasourcekeyresolver

于 2013-02-25T21:30:20.790 回答