5

当我使用实体框架codefirst我可以使用下面的代码让我的数据库连接字符串:如何首先获得数据库信息与实体框架数据库?

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

但是,当我第一次做数据库,数据库将不可用。我如何(从运行时代码开始)获取实体框架正在使用的数据库连接字符串?

回答

12

代码:

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

作品始终。所以如果你从你的数据库中创建实体模型,并使用DbContext Generator T4模板,你仍然可以使用它。

如果改为使用ObjectContext的API则必须调用此:

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

我从来没有发现这个解决方案,所以我用解析查询字符串(这不是很好隐藏;-))。这改善了我的代码,谢谢! – Tillito 2015-02-11 17:02:09

8

...然后具体的连接字符串属性可以暴露:

using System.Data.SqlClient; 



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