Строка подключения Microsoft Enterprise Library - PullRequest
0 голосов
/ 02 декабря 2010

Привет всем! Я успешно получил данные из экземпляра базы данных, показанного в коде. Но как я могу получить имя базы данных из экземпляра базы данных. Я не могу найти какие-либо свойства относительно этого. Пожалуйста, помогите.

private Database _db = EnterpriseLibraryContainer.Current.GetInstance<Database>("ConnString");

1 Ответ

1 голос
/ 03 декабря 2010

Для этого нет явного свойства, поскольку база данных является независимым от технологии базы данных классом, а понятие «имя базы данных» является специфическим для БД. Черт, такие вещи, как Sqlite или SqlCE даже не имеют «имен баз данных», только имена файлов.

Вы можете использовать "_db.ConnectionString", чтобы вернуть строку подключения, а затем проанализировать ее, если вы знаете тип базы данных. Каждый провайдер ADO.NET включает в себя класс компоновщика строки соединения, чтобы выполнить этот анализ за вас.

Например, если у вас есть строка подключения MS Sql, вы можете получить имя базы данных следующим образом:

var connectionStringBuilder = new SqlConnectionStringBuilder(_db.ConnectionString);
string databaseName = connectionStringBuilder.InitialCatalog;

Разные поставщики баз данных будут, конечно, использовать разные свойства и терминологию для предоставления вам этой информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...