我正在使用LINQ to SQL (dbml),我想在继续之前检查连接字符串是否有效。例如,如果连接字符串中的IP地址不正确(或数据库宕机),程序会崩溃,因此希望对此进行检查。我尝试了以下方法:
if (DataContext.DatabaseExists())
MessageBox.Show("Connection Exists");
如果连接有效,这种方法是可行的,但如果连接无效,则会在if语句处卡住。我还可以尝试或做什么?
<add name="NflDataEntities" connectionString="metadata=res://*/NflData.csdl|res://*/NflData.ssdl|res://*/NflData.msl;provider=System.Data.SqlClient;provider connection string="data source=10.10.***.***;initial catalog=NflData;persist security info=True;user id=*****;password=****;MultipleActiveResultSets=True;App=EntityFramework""
providerName="System.Data.EntityClient" />
context.CommandTimeout = 10
来使失败更快地返回。显然,这个属性在不同的 EF 版本中有所移动,请参见 https://dev59.com/p2025IYBdhLWcg3wEhnr 以获取各种选项。 - Steve