Хорошо, я, должно быть, слишком усердно работаю, потому что не могу понять, что нужно для правильного использования Entity Framework.
Вот что я пытаюсь сделать:
У меня есть две таблицы: HeaderTable и DetailTable. В DetailTable будет от 1 до Много записей для каждой строки в HeaderTable. В моем EDM я установил Отношения между этими двумя таблицами, чтобы отразить это.
Поскольку теперь между этими таблицами существует настройка взаимосвязи, я подумал, что, запросив все записи в HeaderTable, я смогу получить доступ к коллекции DetailTable, созданной EDM (я могу видеть свойство при запросе, но оно пустое ).
Вот мой запрос (это приложение Silverlight, поэтому я использую DomainContext на клиенте):
// myContext is instatiated with class scope
EntityQuery<Project> query = _myContext.GetHeadersQuery();
_myContext.Load<Project>(query);
Поскольку эти вызовы асинхронные, я проверяю значения после завершения обратного вызова. При проверке значения _myContext.HeaderTable у меня ожидаются все строки. Однако свойство DetailsTable в _myContext.HeaderTable пусто.
foreach (var h in _myContext.HeaderTable) // Has records
{
foreach (var d in h.DetailTable) // No records
{
string test = d.Description;
}
Я предполагаю, что мой запрос на возврат всех объектов HeaderTable необходимо изменить, чтобы каким-то образом вернуть все сборы HeaderDetail для каждой строки HeaderTable. Я просто не понимаю, как работает этот нелогичный метод моделирования.
Что я делаю не так? Любая помощь очень ценится. Если вам нужна дополнительная информация, просто дайте мне знать. Я буду рад предоставить вам все, что вам нужно.
Спасибо
-Скотт