Загрузка дочерних объектов с EntityFramework в WCF - PullRequest
0 голосов
/ 05 ноября 2019

Следующий код является проектом WCF. Я загружаю дочерние данные таблицы с EntityFramekwork (v.6). Код следующим образом.

Это код в хранилище.

public IEnumerable<Messages> GetMessagesList()
{
    return context.Messages.Include(e=>e.Users).Include(e=>e.Codes).ToList();
}

Это код в службе:

public IEnumerable<Messages> GetMessagesList()
{
   var res =  messagesRepository.GetMessagesList();
   return res;
}

С или безМетод include возвращает данные при отладке.

Но проблема в том, что, когда я добавляю метод include для загрузки связанных дочерних объектов в моем клиенте. Когда я загружаю только сущность сообщений, все в порядке.

Произошла ошибка при получении ответа HTTP на http://localhost:2341/DataService.svc. Это может быть связано с тем, что привязка конечной точки службы не использует протокол HTTP. Это также может быть связано с тем, что сервер прерывает контекст HTTP-запроса (возможно, из-за закрытия службы). Дополнительные сведения см. В журналах сервера.

Внутреннее сообщение об исключении:

Основное соединение было закрыто: при получении произошла непредвиденная ошибка.

При тестировании с ИСПЫТАТЕЛЬНЫМ КЛИЕНТОМ WCF:

enter image description here

Где на самом деле проблема в том, как передать сущность Сообщения с дочерними элементами, загруженными на клиент? без получения ошибок. Ошибки довольно общие, не могут понять реальную проблему.

1 Ответ

0 голосов
/ 07 ноября 2019

Я добавил [DataContract (IsReference = true)] к классам модели, и все связанные данные из дочерних таблиц были загружены с энергичной загрузкой. Это было решением в этом случае.

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