如何先用entityframework数据库获取数据库信息?

发布于 2024-10-30 21:50:57 字数 215 浏览 2 评论 0原文

当我使用实体框架代码优先时,我可以使用以下代码来获取数据库连接字符串:

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

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

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

往事随风而去 2024-11-06 21:50:57

代码:

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;

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;
Smile简单爱 2024-11-06 21:50:57

...然后可以公开特定的连接字符串属性:

using System.Data.SqlClient;



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

... 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;
        }
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文