четверг, 5 июня 2014 г.

О ObjectContext и DbContext в одном проекте

Столкнулся с забавной ситуацией. Если в рамках одного проекта используются две Entity модели, причем одна из них потомок ObjectContext, а вторая DbContext, то при попытке загрузить сущности в потомок DbContext падает ошибка "Не найден тип концептуальной модели для ..." где вместо точек стоит сущность из другого контекста. По английски, эта ошибка звучит так "Could not find the conceptual model type for". Под катом, как с этим бороться.

Вариантов два:
1. Заменить ObjectContext на DbContext, правда нам этот вариант не подошел, т.к. сохранения в DbContext  при паре миллионов сущностей работают очень медленно.
2. А вот другой вариант оказался весьма неожиданным. На русском языке есть забавное предложение вот здесь. Но у меня это не заработало, стали падать выборки из контекста потомка ObjectContext. А вот на английском есть весьма интересная информация здесь. Т.е. чтобы в рамках одного проекта можно было использовать две таких модели, они должны быть вынесены в разные сборки. Вот так:
И все начинает корректно работать. Вот так и живем...

Комментариев нет:

Отправить комментарий