Entity Framework не возвращает объект - PullRequest
0 голосов
/ 25 июня 2010

Привет, я нашел проблему с EF.

Вот моя Модель

Я загрузил актив:

POCO.Asset asset = _context.Assets.Where(a => a.UID == assetUid).First();

затем я прохожусвойства

foreach (POCO.Property p in asset.Properties) /* request to db */ { /*...*/ }

категории:

foreach (POCO.Category p in > asset.Categories) /* request to db */ { /*...*/ }

связанные активы:

foreach (POCO.Relation relatedAsset in entityAsset.Relations) /* request to db */ { /*...*/ }

все свойства навигации работают нормально.Я вижу запрос к БД через профиль.все хорошо.

, но если я прохожу отношения и пытаюсь загрузить RelatedAssetProperties, то у меня есть проблема.В основном мой актив имеет 4 отношения, а каждое отношение имеет 2-3 свойства.

foreach (POCO.Relation relatedAsset in entityAsset.Relations) /* request to db */
{
 /**/
 ICollection<RelatedAssetProperty> rap = relatedAsset.RelatedAssetProperties;
 foreach (RelatedAssetProperty relatedAssetProperty in rap)  /* request to db */
 {
  /**/
 }

}

Во время выполнения RelatedAssetProperties я вижу все 4 запроса к базе данных для получения свойств.Я запускаю все запросы в диспетчере SQL, и каждый возвращает данные.

Но по какой-то причине только для первого отношения рэп имеет элементы (RelatedAssetProperty).Для других отношений оно пустое.

И я не знаю почему.

1 Ответ

2 голосов
/ 25 июня 2010

Можете ли вы убедиться, что у ваших сущностей есть первичный ключ, который имеет смысл? У меня была похожая проблема в представлении , когда был возвращен только первый набор записей в БД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...