¿Por qué desde que agregué Effort.EF6 Unit Tests ya no puedo ejecutar mi sitio web C # MVC?

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

Pregunta

Mi sitio web de C # MVC utiliza StructureMap para inyección de dependencia.

El constructor para mi DbContext solía ser el siguiente.

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

Ahora he agregado Effort.EF6 para realizar una prueba de unidad, tuve que cambiar mi constructor DbContext a esto.

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

Mientras que ahora puedo probar mi código de unidad. Ya no puedo ejecutar el sitio web porque StructureMap no puede crear desde el cambio.

Ninguna instancia predeterminada está registrada y no puede determinarse automáticamente para el tipo 'System.Data.Common.DbConnection'

¿Cómo puedo decirle a StructureMap cómo inicializar mi DBContext como antes, y permitir que Effort.EF6 también funcione?

EDITAR -

StructureMap se inicia cuando el sitio web se inicia de la siguiente manera ...

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

Se inicia automáticamente cuando se inicia el sitio web.

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

Respuesta popular

Me las arreglé para averiguarlo. Al cambiar el constructor para el mapa de estructura DBContext no se pudo pasar una DbConnection.

Así que ahora tengo ambos constructores y agregué un poco de lógica a la configuración del mapa de estructura que le indica qué constructor debe usar el sitio web.

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




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué