Я нашел решение, которое вдохновило и основанный на this Rowan Miller's presentation at TechEd 2014.
Моя основная забота заключалась в том, чтобы отфильтровывать коллекции «Сообщения» и «Комментарии» (в соответствии с известными условиями) при загрузке агрегата блога.
Ленивая загрузка не была хорошим решением, поскольку он будет посылать слишком много запросов к базе данных для того, чтобы загрузить все необходимые сообщения и соответствующие комментарии (сообщения и комментарии коллекции могут быть огромными)
Я думал, жадную загрузку, использование оператора «Include» не было хорошим решением, потому что оператор «Include» не поддерживает фильтр. Это означает, что если я загружу свои блоги следующим образом: myContext.Blogs.Include («Posts»), коллекция сообщений не фильтруется, и все сообщения из базы данных будут загружены, я не хочу этого.
В EF6 теперь можно перехватывать и изменять запросы до того, как он будет переустроен SQL и отправлен в базу данных. Эта функция является ключевым решением.
Мое решение состоит в том, чтобы перехватить все запросы SELECT объектов Post и Comment и изменить их для применения моих фильтров. С этой реализацией я могу выполнить загрузку, и все запросы SELECT объекта Post и Comment имеют фильтры, которые применяются автоматически.
Rowan Miller продемонстрировал эту функцию, реализовав мягкое удаление.
Надеется, что это поможет,
Риана