如何检索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名称的列表?
您可以连接到主数据库,并运行:
SELECT name FROM sys.databases
由于LocalDb是针对开发人员而不是数据库管理员的,因此数据库存储在文件夹中。
通常这个文件夹是
C:'Users'User'AppData'Local'Microsoft'Microsoft SQL Server LocalDB '实例' MSSQLLocalDB
每个以。mdf结尾的文件都是一个DataBase.
不幸的是,有- afaik-没有内置的机制来招募他们,因为localDb是基于文件的,你可以把它保存在任何你想要的地方。