Это не модульное тестирование. Это интеграционное тестирование. Более того, такие тесты не слишком полезны. Не позволяйте EF создавать базу данных, а использовать копию существующей базы данных. Просто сохраните сущность и загрузите сущность в новом контексте. Если данные в порядке, вы счастливы с этим. Вы можете сделать каждую тестовую транзакцию так, чтобы транзакция откатывалась после каждого теста.
EF 4.1 с первым подходом к коду не предоставляет доступ к рабочей области метаданных. Вы можете попытаться преобразовать DbContext
обратно в ObjectContext
и попытаться получить доступ к MetadataWorkspace
:
ObjectContext ctx = ((IObjectContextAdapter) context).ObjectContext;
MetadataWorkspace workspace = ctx.MetadataWorkspace;
Поиск чего-либо в MetadataWorkspace
- это ужасный опыт. Этот класс определенно не предназначен для использования в пользовательском коде.