简体   繁体   中英

How to get database information with entityframework database first?

When I use Entity Framework codefirst I can use the following code to get my database connection string:

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

But when I do database first, Database is not available. How do I (from code at runtime) go about getting the database connection string that is being used by entity framework?

The code:

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

works always. So If you created entity model from your database and used DbContext Generator T4 template you can still use it.

If you instead used ObjectContext API you must call this:

var connection = context.Connection as EntityConnection;
if (connection == null) throw new ...;
var storeConnectionString = connection.StoreConnection.ConnectionString;

... And the specific connection string properties can then be exposed:

using System.Data.SqlClient;



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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM