Почему после добавления тестов Effort.EF6 Unit я могу больше не запускать свой веб-сайт C # MVC?

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

Вопрос

Мой сайт C # MVC использует StructureMap для инъекций зависимостей.

Конструктор моего DbContext был следующим.

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

Теперь я добавил Effort.EF6 для модульного теста, мне пришлось изменить конструктор DbContext на это.

public class PortalEntityModel : DbContext
{
    public PortalEntityModel(DbConnection connection) : base(connection, true)
    {
    }
}

Пока я могу выполнить модульный тест моего кода. Я больше не могу запустить веб-сайт, потому что StructureMap не может создать с момента изменения.

Экземпляр по умолчанию не зарегистрирован и не может быть автоматически определен для типа «System.Data.Common.DbConnection»

Как я могу показать StructureMap, как инициализировать мой DBContext, как и раньше, и позволять Effort.EF6 также работать?

РЕДАКТИРОВАТЬ --

StructureMap запускается при запуске веб-сайта следующим образом ...

    public static void Start()
    {
        IContainer container = IoC.Initialize();
        StructureMapDependencyScope = new StructureMapDependencyScope(container);
        DependencyResolver.SetResolver(StructureMapDependencyScope);
        DynamicModuleUtility.RegisterModule(typeof(StructureMapScopeModule));
    }

Он запускается автоматически при запуске веб-сайта

[assembly: PreApplicationStartMethod(typeof(StructuremapMvc), "Start")]
[assembly: ApplicationShutdownMethod(typeof(StructuremapMvc), "End")]

Популярные ответы

Мне удалось это понять. При смене конструктора для структуры структуры DBContext не удалось передать ему DbConnection.

Таким образом, у меня есть оба конструктора и добавлено немного логики в setup структуры структуры, которая сообщает, какой конструктор должен использовать веб-сайт.

c.For (). Использовать (). SelectConstructor (() => new PortalEntityModel ());



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow