При запросе «Включить» проверяет ли EF, существуют ли объекты в диспетчере состояний объектов? - PullRequest
0 голосов
/ 16 ноября 2009

Следует ли мне избегать использования Включить в запросы или я могу положиться на EDM, который при создании запроса исключает его из элементов запроса, уже существующих в OSM?

1 Ответ

2 голосов
/ 16 ноября 2009

Я почти уверен, что EF4 будет использовать что-либо в настоящее время в ObjectStateManager и загружать только те объекты, которых у него еще нет, но лучший способ убедиться в этом - просто протестировать его с запущенным SQL Profiler и посмотреть, верно ли это за то, как вы его используете.

Конечно, использование метода Include () рекомендуется командой EF, но если вы решите загрузить связанные строки позже, ObjectStateManager выполнит «исправление отношений», что может быть очень мощным средством для использования в своих интересах.

Посмотрите на эту запись в блоге:

http://blogs.msdn.com/alexj/archive/2009/10/13/tip-37-how-to-do-a-conditional-include.aspx

В его блоге вы найдете множество замечательных статей, касающихся структуры сущностей.

...