c# – 实体框架提供异常:“底层提供程序在Open上失败”.
发布时间:2020-12-15 03:43:43 所属栏目:百科 来源:网络整理
导读:我有一个考试发生什么是,当首先执行test1时,test2将失败,并显示以下消息: “System.Data.EntityException : System.Data.EntityException : the underlying provider failed on open. cannot open database “DBEntities” requested by the login. The log
我有一个考试发生什么是,当首先执行test1时,test2将失败,并显示以下消息:
并且首先执行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(); } } 以下是DBEntities类的摘录: public class DBEntities : DbContext { public DbSet<Books> TheBooks{get;set;} ... } 运行分析器后,我注意到这个消息:
经过很多lockAcquired和lockReleased语句. 解决方法
可能的问题是连接池?即使EF对象被处理,SQL提供程序会尝试保留测试之间的连接吗?在这种情况下,同一个用户有多个连接到同一个DB的问题?
尝试在清理过程中明确关闭连接: db.Database.Connection.Close(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |