2013-11-17 2 views
2

Я наблюдал, что иногда мои запросы возвращают прокси, а иногда и нет, после того, как я укажу this.Configuration.ProxyCreationEnabled = false;EF 5 - Иногда возвращает динамический прокси, хотя ProxyCreationEnabled = false;

Я полностью в недоумении. Кто-нибудь знает, почему это может случиться? Это ошибка?

У меня был код, который сделал:

 this.Configuration.ProxyCreationEnabled = false; 
     this.Configuration.LazyLoadingEnabled = false; 
     var result = query(); 

Где запрос был "SingleOrDefault". Это вернуло poco просто отлично.

Затем я изменил его, чтобы вернуть список, избавившись от «SingleOrDefault» и используя предложение «Где» --- и теперь он возвращает список прокси, а не poco.

ответ

2

Я думаю, что я наконец нашел ответ на эту неприятную проблему.

EF5 DBContext configuration ignored

В принципе, если объект кэшируется в контексте БД в качестве прокси-сервера, то он будет возвращен в качестве прокси-сервера независимо от того, говорит ли или нет конфигурация не использовать прокси.

Решение будет состоять в том, чтобы создать новый контекст, а затем выполнить запрос или отключить создание прокси, а не динамически изменять конфигурацию во время выполнения.

+0

Как отключить создание прокси? –

+1

this.Configuration.ProxyCreationEnabled = false; Поместите это в свой конструктор контекста. – JayPrime2012

+0

Хорошая привязка к контексту повторно используемого объекта, потянув его из кеша как динамического. – Kingpin2k

Смежные вопросы