Warum kann ich seit dem Hinzufügen von Aufwand.EF6 Komponententests meine C # MVC-Website nicht mehr ausführen?

asp.net-mvc c# effort entity-framework structuremap

Frage

Meine C # MVC-Website verwendet StructureMap zur Abhängigkeitsinjektion.

Der Konstruktor für meinen DbContext war wie folgt.

public class PortalEntityModel : DbContext
{
    public PortalEntityModel() : base("name=PortalEntityModel")
    {
    }
}

Jetzt habe ich Effort.EF6 hinzugefügt, um den Komponententest durchzuführen, ich musste meinen DbContext-Konstruktor zu diesem ändern.

public class PortalEntityModel : DbContext
{
    public PortalEntityModel() : base("name=PortalEntityModel")
    {
    }
}

Ich kann jetzt meinen Code testen. Ich kann die Website nicht mehr ausführen, da StructureMap seit der Änderung nicht mehr erstellt werden kann.

Keine Standardinstanz ist registriert und kann nicht automatisch für den Typ 'System.Data.Common.DbConnection' ermittelt werden

Wie kann ich StructureMap sagen, wie ich meinen DBContext wie zuvor initialisieren soll, während es Effort.EF6 auch erlaubt zu arbeiten?

Bearbeiten -

StructureMap wird gestartet, wenn die Website wie folgt gestartet wird ...

public class PortalEntityModel : DbContext
{
    public PortalEntityModel() : base("name=PortalEntityModel")
    {
    }
}

Es wird automatisch beim Start der Website gestartet

public class PortalEntityModel : DbContext
{
    public PortalEntityModel() : base("name=PortalEntityModel")
    {
    }
}

Beliebte Antwort

Ich habe es geschafft, es herauszufinden. Wenn der Konstruktor für die DBContext-Strukturkarte geändert wurde, konnte er keine DbConnection übergeben.

Also habe ich jetzt beide Konstruktoren und habe dem Strukturkarten-Setup ein bisschen Logik hinzugefügt, die ihm sagt, welchen Konstruktor die Webseite benutzen soll.

c.For (). Use (). SelectConstructor (() => new PortalEntityModel ());




Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum