Как вручную загрузить связанные объекты в отношении N: N?
Я использую EF5, и когда отношение равно 1: N, если я хочу загрузить связанные сущности, я делаю следующее:
С T-SQL я загружаю из базы данных основные объекты с T-SQL, например:
select *
from MainEntities
where ...
с T-SQL загружаю связанные сущности
select *
from RelatedEntities
where IDMainEntity IN (---)
В этот момент EF заполняет навигацию по свойствам основных объектов связанными объектами. Кроме того, в локальном свойстве типа каждого объекта вdbContext
У меня есть все сущности каждого типа.
Однако, если я делаю то же самое с отношением N: N, я неу меня есть сущность средней таблицы отношения, и когда я выполняю запросы, которые я имею в локальнойdbContext
сущности каждого типа, но навигация по свойствам не заполняется.
Я хотел бы знать, почему и если существует какая-то альтернатива.
Я использую этот способ, потому что я хочу использовать T-SQL для создания динамических запросов. Если я использую готовую загрузку, я неУ меня такая же гибкость для динамических запросов, как и при использовании TSQL, и она менее эффективна. Если я использую явную загрузку I, чтобы выполнить N дополнительных запросов, по одной из каждой записи в результатах основного объекта. По-моему, у меня только один дополнительный запрос, потому что я получаю все связанные объекты одновременно. Если я использую отложенную загрузку, у меня та же проблема, N дополнительных запросов.
Почему EF не заполняет связанные свойства, когда отношение N: N?
Благодарю.