Entity Framework 6.1.1 игнорирует параметры ProxyCreationEnabled

У меня есть класс контекста, и в какой-то момент мне нужно получить данные из базы данных в моих классах POCO, чтобы я мог сериализовать эти данные и отправить их в свою веб-службу. Я не хочу десериализовать прокси на другом конце, но я не могу заставить EF создавать свои классы POCO.

Я использую следующий код для получения данных:

((IObjectContextAdapter) this).ObjectContext.ContextOptions.ProxyCreationEnabled = false;
var nodes = (from node in TreeNodes select node).ToList();
((IObjectContextAdapter)this).ObjectContext.ContextOptions.ProxyCreationEnabled = true;

Обратите внимание, что TreeNodes — это TPH, а базовый класс является абстрактным. Есть ли способ получить классы POCO в моем случае?


person DarkDeny    schedule 03.12.2014    source источник
comment
Я предполагаю, что это произойдет, если у вас уже загружены некоторые прокси. См. stackoverflow.com/a/5015424/242520.   -  person ta.speot.is    schedule 03.12.2014
comment
Вы имеете в виду, что параметр ProxyCreationEnabled игнорируется после выполнения первого запроса?   -  person DarkDeny    schedule 03.12.2014
comment
Я имею в виду, что для сущностей, уже загруженных как прокси... они уже загружены. Таким образом, вы загружаете объекты как прокси.   -  person ta.speot.is    schedule 03.12.2014
comment
Теперь я думаю, что понял тебя. Что ж, похоже, тогда мне нужно создать еще один экземпляр контекста для такой операции.   -  person DarkDeny    schedule 03.12.2014


Ответы (1)


Я решил этот сценарий, снова создав экземпляр того же контекста, настроив настройки, а затем запустив запрос и удалив контекст.

person DarkDeny    schedule 03.12.2014