Как определить, установлено ли свойство навигации в Entity Framework без загрузки связанных записей

Я не уверен насчет навигационных свойств в EF 4, поэтому прошу вас объяснение.

Давайте представим следующие сценарии:

A)

У меня есть две сущности A и B с отношением N к N (многие ко многим) и дерево Таблица в моей базе данных A и B и таблица ссылок AB с двумя внешними ключами .

В этом сценарии EF создает свойство навигации и назовет его X , а также XReference .

B)

У меня есть две сущности A и B с отношением 1 к N ( один ко многим) и два Таблица в моей базе данных A и B с одним внешним ключом .

В этом сценарии EF создает свойство навигации и назовет его Y , но не YReference .

Теперь давайте возьмем сценарий A и B и попытаемся выяснить, есть ли ссылка на A в B:

Мой код для сценария:

A):

bool isA = a.XReference.EntityKey != null;

Я не загрузить записи B (правильно?)

B):

bool isA = a.B.Any(x => x.BId == AId);

Я загружаю записи B

Мои вопросы:

  • Почему EF не создает ссылку YReference, и я не могу использовать свойство EntityKey в Сценарий B.
  • В моем сценарии кода B: действительно ли я не загружаю записи из B?
  • Знаете ли вы лучший способ быстрого выполнения этого запроса?

Спасибо, ребята, за вашу помощь, надеюсь, я смог прояснить: -)

11
задан GibboK 24 June 2011 в 15:03
поделиться