Perché da quando ho aggiunto i test di unità di sforzo.EF6 non posso più eseguire il mio sito Web C # MVC?

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

Domanda

Il mio sito Web C # MVC utilizza StructureMap per Iniezione delle dipendenze.

Il costruttore del mio DbContext era il seguente.

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

Ora ho aggiunto Effort.EF6 al test dell'unità, ho dovuto cambiare il mio costruttore DbContext con questo.

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

Mentre ora posso testare il mio codice unitario. Non riesco più a eseguire il sito Web perché StructureMap non può essere creato dopo la modifica.

Nessuna istanza predefinita è registrata e non può essere determinata automaticamente per il tipo "System.Data.Common.DbConnection"

Come posso dire a StructureMap come inizializzare il mio DBContext come prima, pur permettendo a Effort.EF6 di funzionare anche?

MODIFICARE --

StructureMap viene avviato all'avvio del sito Web come segue ...

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

Viene avviato automaticamente all'avvio del sito Web

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

Risposta popolare

Sono riuscito a capirlo. Quando si modificava la funzione di costruzione per la structemap di DBContext non era possibile passarlo a DbConnection.

Quindi ora ho entrambi i costruttori e ho aggiunto un po 'di logica all'impostazione della structuremap che indica quale costruttore dovrebbe utilizzare il sito.

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




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché