我一直在WPF数据库转换应用程序中使用实体框架。我接近发布应用程序,但有一件事总是给我留下了深刻的印象 - DB环境总是在我第一次尝试时失败。WPF应用程序:实体框架连接第一次失败
这里是我的错误:我知道实例是可访问的,因为我运行其他的东西给它(和它连接就好了所有后续尝试)
System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
。所以它必须是我的配置中的东西。
我有一个应用程序的默认app.config,如果不存在。使用应用程序,用户连接到他们的数据库实例,并使用ConfigurationManager类将他们的设置保存到配置文件中。在保存连接字符串之前,我不会进行任何上下文调用。
样品的app.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="ImportUser" value="Admin" />
</appSettings>
<connectionStrings>
<add name="RockContext" connectionString="Data Source=localhost;
Initial Catalog=RockChMS;Integrated Security=True;
MultipleActiveResultSets=True;Connection Timeout=15"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
EF将连接:
- 一旦我使用的是正确的app.config设置
- 如果我手动更改的app.config之前重新启动应用程序程序启动
有没有办法强制EF在程序启动后用正确的连接字符串重新加载/刷新?直到保存修改后的连接字符串后,我才使用上下文调用任何内容。
感谢您的建议,我会尝试今晚稍后! – David 2014-10-07 17:27:24