Мои классы выглядят так :
Код: Выделить всё
namespace Old.Busted.EF.DAL
{
[DbConfigurationType(typeof(Old.Busted.EF.DAL.OldConfiguration))]
public class OldContext : DbContext[...]
public class OldConfiguration : DbConfiguration[...]
}
namespace New.Shiny.EF.DAL
{
[DbConfigurationType(typeof(New.Shiny.EF.DAL.NewConfiguration))]
public class NewContext : DbContext[...]
public class NewConfiguration : DbConfiguration[...]
}
Экземпляр 'NewConfiguration ' был установлен, но этот тип
не был обнаружен в той же сборке, что и контекст 'OldContext'. Либо
поместите тип DbConfiguration в ту же сборку, что и тип DbContext
, используйте DbConfigurationTypeAttribute для типа DbContext, чтобы
указать тип DbConfiguration, либо установите тип DbConfiguration в
конфигурации. файл.
который пытается применить новую конфигурацию к старому контексту. Библиотека, в которой находится код взлома, является единственной библиотекой, которая ссылается как на старый, так и на новый EF DAL, и, более того, это исключение генерируется только тогда, когда тесты запускаются в командной строке через mstest - они проходят нормально, если работать изнутри. Visual Studio.
Использование .NET 4.0 и Visual Studio 2010.
Что я пробовал:
- помещение информации о конфигурации в файлы конфигурации вместо кода (без изменений)
- помещение одной конфигурации DbConfiguration в общую библиотеку (безубыточность
больше всего) - с использованием конструктора DbContext, передающего объект DbConnection вместо конструктора без параметров или строкового конструктора (без изменений)
Подробнее здесь: https://stackoverflow.com/questions/204 ... multiple-d