"Database X does not exist." 在 SQLLocalDbAPI 的 CreateTemporaryInstance 方法之后访问数据库时 - 如何修复?

"Database X does not exist." when accessing DB after CreateTemporaryInstance method of SQLLocalDbAPI - How to fix it?

我正在设置一些使用临时数据库实例的集成测试;并且即时创建这些临时实例的 API 似乎运行良好(即没有例外)。 但是,当我尝试使用这些实例时会抛出异常(即 "Database 'X' does not exist.",其中 X 是当前临时实例名称)。我错过了什么?

我目前使用 MSTest 作为测试环境,SQLLocalDB 作为 "DBMS",MartinCostello.SQLLocalDB 作为库来管理 SQLLocalDB。

using (var localDB = new SqlLocalDbApi(OutputHelper.ToLoggerFactory()))
{
  using (TemporarySqlLocalDbInstance instance = localDB.CreateTemporaryInstance(deleteFiles: true))
  {
    using (var connection = new SqlConnection(instance.ConnectionString))
    {
      connection.Open();

      using (var command = new SqlCommand("CommandToExecute", connection))
      {
        try
        {
          command.ExecuteNonQuery();
        }
        catch (SqlException ex)
        {
          Console.WriteLine($"An exception was thrown: {ex.Message}");
        }
      }
    }
  }
}

我预计会创建实例,但是当 SQL 命令执行时,它抛出异常:

Database '44a44154-5ad8-4c7f-89b1-d5635504fdbe' does not exist. Make sure that the name is entered correctly.

如果我在 visual studio "SQL Server Object Explorer" 中检查数据库是否存在,我会看到 localdb,但我没有看到临时实例。

任何人都可以指出正确的方向吗?

从@jdweng 的评论中,我发现我也在使用实例名称作为数据库名称,但没有创建它。因此,执行创建新数据库的命令足以解决我的问题。 例如,CREATE DATABASE [44a44154-5ad8-4c7f-89b1-d5635504fdbe] ...

之后,我在路径权限方面遇到了一些问题。然而,一些谷歌搜索让我发现我可以为 MDF 和 LDF 文件指定一个有效的访问文件路径。

现在,一切都很顺利!