如何检索SQL Server LocalDb名称列表

本文关键字:LocalDb Server 列表 SQL 何检索 检索 | 更新日期: 2023-09-27 18:02:07

我使用实体框架与SQL Server LocalDb作为我的应用程序的存储介质。我需要找到一种方法来切换具有相同SQL结构的不同数据库。

我的想法是从DbContext:

public const bool RecreateDB = false;
public UnifiedContext() : this(RecreateDB) { }
public UnifiedContext(bool recreateDb):this(recreateDb, "DemoDB") { }
public UnifiedContext(bool recreateDB, string dbName) : base($"MyUniquePrefix.{dbName}")
{
    if (recreateDB)
        Database.SetInitializer(new DropCreateDatabaseAlways<UnifiedContext>());
    else
        Database.SetInitializer(new MigrateDatabaseToLatestVersion<UnifiedContext, UnifiedConfiguration>());
}

这工作得很好,就像我想要的。然而,我现在需要显示一个localdb列表加载我知道我可以得到一个SQL数据库的System.Data.Sql.SqlDataSourceEnumerator.Instance.GetDataSources();列表,但这并不适用于localdb。

如何检索LocalDb名称的列表?

如何检索SQL Server LocalDb名称列表

您可以连接到主数据库,并运行:

SELECT name FROM sys.databases

由于LocalDb是针对开发人员而不是数据库管理员的,因此数据库存储在文件夹中。

通常这个文件夹是

C:'Users'User'AppData'Local'Microsoft'Microsoft SQL Server LocalDB '实例' MSSQLLocalDB

每个以。mdf结尾的文件都是一个DataBase.

不幸的是,有- afaik-没有内置的机制来招募他们,因为localDb是基于文件的,你可以把它保存在任何想要的地方。