c# - Entity Framework 给出异常 : "The underlying provider failed on Open."

标签 c# .net entity-framework

我有一个测试。发生的情况是,无论何时首先执行 test1,test2 都会失败并显示消息:

"System.Data.EntityException : System.Data.EntityException : the underlying provider failed on open. cannot open database "DBEntities" requested by the login. The login failed.".

只要先执行 test2,test1 就会失败并显示相同的消息。

过去 3 天我一直在处理这个问题。

[TestClass]
class MyTestClass 
{

    DBEntities db;

    [TestInitialize]
    public void Initializer()
    {
       db = new DBEntities(); 
    }

    [TestMethod]
    public void test1()
    {
       db.Books.Add(new Book{ ...});
       db.SaveChanges();

    }

    [TestMethod]
    public void test2()
    {
       db.Books.Add(new Book{ ...});
       db.SaveChanges();
    }


    [TestCleanup]
    public void Clean()
    {
       db.Dispose(); 
    }

}

这是 DEBentities 类的摘录:

public class DBEntities : DbContext
{
    public DbSet<Books> TheBooks{get;set;}
    ...
}

运行分析器后,我注意到这条消息:

"Login failed for user. Reason: failed to open the explicitly specified database."

在大量的 lockAcquiredlockReleased 语句之后。

最佳答案

问题可能出在连接池上吗?即使释放了 EF 对象,SQL 提供程序是否会尝试保留测试之间的连接?在那种情况下,同一用户对同一数据库的多个连接是否会出现问题?

尝试在清理时显式关闭连接:

db.Database.Connection.Close();

关于c# - Entity Framework 给出异常 : "The underlying provider failed on Open.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4987787/

相关文章:

c# - 获取在 .NET Core 中实现接口(interface)的所有类型

c# - Ocelot 不将 websocket 传递给微服务

c# - 多数据库一口气迁移

c# - 实体数据模型不显示 MySql 选项

c# - 如何创建一个临时表并在与 Entity Framework 的相同连接中使用它?

c# - 如何在打开的下拉菜单中填充组合框

c# - 处理大图像时出现内存不足异常

c# - 如果第一次使用代码优先方法会出现迁移错误

c# - Nuget 包 Microsoft.TypeScript.MSBuild 在 Dockerfile 中失败

c# - 获取本地网络服务器上所有 UNC 共享文件夹的列表