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


Вопрос

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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





Лицензировано согласно: CC-BY-SA
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему