10 Stimmen

Entity Framework gibt eine Ausnahme aus: "Der zugrunde liegende Anbieter ist beim Öffnen gescheitert."

Ich habe einen Test. Was passiert, ist, dass, wenn test1 zuerst ausgeführt wird, test2 mit der Meldung fehlschlägt:

"System.Data.EntityException : System.Data.EntityException : Der zugrundeliegende Anbieter ist beim Öffnen gescheitert. Die Datenbank kann nicht geöffnet werden. "DBEntities", die durch die Anmeldung angefordert wurde. Die Anmeldung ist fehlgeschlagen.".

und immer, wenn test2 zuerst ausgeführt wird, schlägt test1 mit der gleichen Meldung fehl.

Ich habe die letzten 3 Tage damit verbracht.

[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(); 
    }

}

Hier ist ein Auszug aus der Klasse DBEntities :

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

Nachdem ich einen Profiler ausgeführt hatte, fiel mir diese Meldung auf:

"Anmeldung für Benutzer fehlgeschlagen. Grund: Die explizit angegebene Datenbank konnte nicht geöffnet werden."

nach einer Menge lockAcquired y lockReleased Erklärungen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X