SQL VS EF VS LDAP 连接字符串类型测试



我的 webconfig 中有 3 种类型的连接字符串,我们将它们用于应用程序的各个部分,例如 LDAP 登录、相关但未集成的数据库的数据库状态以及 EF DB First 连接字符串 (EDMX(

我希望以最经济的方式解析连接字符串数据。

目前
<add name="ADConnectionString" connectionString="LDAP://something.somewhere.something:389" />
<add name="DEV" connectionString="data source=SOURCE;initial catalog=Test;integrated security=False;MultipleActiveResultSets=True;App=EntityFramework;User ID=tech;Password=*********;" providerName="System.Data.SqlClient" />
<add name="ConfigEntities" connectionString="metadata=res://*/Data.Config.csdl|res://*/Data.Config.ssdl|res://*/Data.Config.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=SOURCE;initial catalog=CATALOG;persist security info=True;user id=user;password=*********;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" />

为了处理连接字符串,我发现我需要尝试捕获两个部分才能完成该过程

首先,try catch 允许我们安全地跳过 LDAP 连接字符串(应该在没有 try catch 的情况下跳过它

其次,似乎我需要转换字符串才能从中检索数据......

try
{
var ssb = new SqlConnectionStringBuilder((((ConnectionStringSettings)c).ConnectionString));
}

try{
var ssb = new SqlConnectionStringBuilder((new EntityConnectionStringBuilder(((ConnectionStringSettings)c).ConnectionString).ProviderConnectionString));
}

从那里代码是相同的

有没有人对在运行代码之前确定连接字符串类型的最佳方法有想法,以防止需要依赖 try catches。

可以从ConnectionStringSettings获取连接字符串的name属性。使用name属性标识连接字符串的类型。

您已经ConnectionStringSettings对象,该对象是c(基于您的代码片段(。

检查如下所示的name属性以避免try语句。

if(c.Name.Equals("ADConnectionString")) //ADConnectionString
{
}
else if(c.Name.Equals("DEV")) //DEV
{    
}
else //ConfigEntities
{
}

最新更新