如何首先获得数据库信息与实体框架数据库?
问题描述:
当我使用实体框架codefirst我可以使用下面的代码让我的数据库连接字符串:如何首先获得数据库信息与实体框架数据库?
var db = new dbContext();
Console.Writeline(db.Database.Connection.ConnectionString);
但是,当我第一次做数据库,数据库将不可用。我如何(从运行时代码开始)获取实体框架正在使用的数据库连接字符串?
答
代码:
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;
答
...然后具体的连接字符串属性可以暴露:
using System.Data.SqlClient;
internal static string GetDatabaseName()
{
using (var _db = new MyProjectEntities())
{
return new SqlConnectionStringBuilder(_db.Database.Connection.ConnectionString).InitialCatalog;
}
}
我从来没有发现这个解决方案,所以我用解析查询字符串(这不是很好隐藏;-))。这改善了我的代码,谢谢! – Tillito 2015-02-11 17:02:09