"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 文件指定一个有效的访问文件路径。
现在,一切都很顺利!
我正在设置一些使用临时数据库实例的集成测试;并且即时创建这些临时实例的 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 文件指定一个有效的访问文件路径。
现在,一切都很顺利!