Как сначала получить информацию о базе данных с помощью базы данных entityframework? - PullRequest
5 голосов
/ 07 апреля 2011

Когда я использую codefirst Entity Framework, я могу использовать следующий код для получения строки подключения к моей базе данных:

var db = new dbContext();
Console.Writeline(db.Database.Connection.ConnectionString);

Но когда я сначала создаю базу данных, база данных недоступна. Как мне (из кода во время выполнения) получить строку подключения к базе данных, которая используется структурой сущностей?

Ответы [ 2 ]

12 голосов
/ 07 апреля 2011

Код:

var db = new dbContext();
Console.Writeline(db.Database.Connection.ConnectionString);

работает всегда.Поэтому, если вы создали модель сущности из своей базы данных и использовали шаблон DbContext Generator T4, вы все равно можете использовать его.

Если вы вместо этого использовали API ObjectContext, вы должны вызвать это:

var connection = context.Connection as EntityConnection;
if (connection == null) throw new ...;
var storeConnectionString = connection.StoreConnection.ConnectionString;
8 голосов
/ 28 мая 2014

... И конкретные свойства строки подключения могут быть затем доступны:

using System.Data.SqlClient;



    internal static string GetDatabaseName()
    {
        using (var _db = new MyProjectEntities())
        {
            return new SqlConnectionStringBuilder(_db.Database.Connection.ConnectionString).InitialCatalog;
        }
    }
...