0

我在 ASP.NET MVC 项目上使用带有 EntityFramework 的 LocalDB 数据库。

如何模拟连接失败来测试以下 try...catch 块?

try
{
   if (ModelState.IsValid)
   {
      db.Entry(course).State = EntityState.Modified;
      db.SaveChanges();
      return RedirectToAction("Index");
   }
}
catch (DataException)
{

   ModelState.AddModelError("", "Unable to save changes.");
}

我曾尝试在 SQL 管理工作室中使数据库脱机,但它只是挂起。我无法停止 SQL 服务,因为 LocalDB 不作为服务运行。

4

2 回答 2

1

即使 LocalDB 实例不作为服务运行,您也可以停止它,您可以使用 SQLLocalDB.exe 工具来执行此操作:

SqlLocalDB 实用程序

于 2013-09-06T10:25:24.623 回答
1

您是否尝试过给它一个不存在的 LocalDB 实例名称?只需将其放入此测试的连接字符串中:

Server=(localdb)\missing_instance`

(如果您将此连接字符串嵌入代码中,请不要忘记转义\字符:-))

connectionString="Server=(localdb)\\missing_instance;..."
于 2013-09-06T16:11:46.120 回答