Pourquoi depuis l'ajout des tests unitaires Effort.EF6, ne puis-je plus faire fonctionner mon site Web C # MVC?

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

Question

Mon site Web C # MVC utilise StructureMap for Dependency Injection.

Le constructeur de mon DbContext était habituellement le suivant.

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

Maintenant, j'ai ajouté Effort.EF6 pour effectuer des tests unitaires, je devais changer mon constructeur DbContext en ceci.

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

Bien que je puisse maintenant tester mon code à l’unité. Je ne peux plus faire fonctionner le site Web car StructureMap ne peut plus créer depuis le changement.

Aucune instance par défaut n'est enregistrée et ne peut pas être automatiquement déterminée pour le type 'System.Data.Common.DbConnection'

Comment puis-je dire à StructureMap comment initialiser mon DBContext comme avant, tout en permettant à Effort.EF6 de fonctionner également?

MODIFIER --

StructureMap est lancé lorsque le site Web est lancé comme suit ...

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

Il est lancé automatiquement au démarrage du site.

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

Réponse populaire

J'ai réussi à comprendre. Lors de la modification du constructeur pour le structemap DBContext, il n'a pas été possible de lui transmettre une connexion DbConnection.

J'ai donc les deux constructeurs maintenant et ajouté un peu de logique à la configuration de structemap qui lui dit quel constructeur le site Web doit utiliser.

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




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi