string GetDatabaseName()
{
var connectionStringBuilder = new DbConnectionStringBuilder { ConnectionString = this.ConnectionString };
object objDbName;
string dbName = null;
if (DbProviderName == DbProviderNames.Oracle || DbProviderName == DbProviderNames.Oracle_ODP)
{
if (connectionStringBuilder.TryGetValue("USER ID", out objDbName))
dbName = objDbName.ToString();
else if (connectionStringBuilder.TryGetValue("UID", out objDbName))
dbName = objDbName.ToString();
}
else
{
if (connectionStringBuilder.TryGetValue("Initial Catalog", out objDbName))
dbName = objDbName.ToString();
else if (connectionStringBuilder.TryGetValue("Database", out objDbName))
dbName = objDbName.ToString();
else if (connectionStringBuilder.TryGetValue("AttachDBFileName", out objDbName))
dbName = objDbName.ToString();
else if (connectionStringBuilder.TryGetValue("Data Source", out objDbName))
dbName = objDbName.ToString();
var dataDirectory = AppDomain.CurrentDomain.GetData("DataDirectory") as string;
if (dbName == null) return null;
if (dbName.Contains(@"|DataDirectory|\"))
{
if (dataDirectory == null)
dataDirectory = CheckDataDirectory(dataDirectory);
dbName = dbName.Replace(@"|DataDirectory|\", dataDirectory + @"\");
}
else if (dbName.Contains(@"|DataDirectory|"))
{
if (dataDirectory == null)
dataDirectory = CheckDataDirectory(dataDirectory);
dbName = dbName.Replace(@"|DataDirectory|", dataDirectory + @"\");
}
}
return dbName;
}