API-вызов Xamarin Forms не возвращает включенную сущность в строку json - PullRequest
0 голосов
/ 18 мая 2018

В моем ApiController есть следующее, и оно работает

    [HttpPost]
    [AllowAnonymous]
    public IEnumerable<GridPost> LoadDashboardAsync()
    {
        IEnumerable<GridPost> posts = _repo.GridPostRepository()
            .Include(m => m.LastModifiedByUser)
            .Where(a => a.IsActive == true)
            .OrderByDescending(s => s.DateLastModified);

        return posts;
    }

Я могу достичь точки останова и увидеть, что IEnumerable I с именем 'posts' содержит соответствующую запись пользователя (LastModifiedByUser является свойством nav для FKдля одной связанной пользовательской записи, а не списка / коллекции).Пока все выглядит хорошо.

Затем я вызываю этот API из ViewModel в моем проекте Xamarin Forms.Это работает как посты (сама сущность GridPost).Он загружает и десериализует и отображает просто отлично в моем ListView на странице XAML, за исключением того, что связанный объект вообще не отображается.При установке точки останова, прежде чем даже перейти к последней строке, показанной ниже для десериализации, функция jsonRead, возвращаемая функцией ReadAsStringAsync (), не содержит связанной пользовательской сущности (есть поле FK UserID, содержащее идентификатор, но свойство навигациито, что содержало связанного пользователя на сервере, не возвращалось в этой строке json - это нуль).Поэтому вопрос заключается в том, почему связанный пользователь исчезает при возврате с сервера на клиент?

    Task<HttpResponseMessage> response = _apiClient.SendAsync(loadChallenges);
        HttpResponseMessage _completed = await response;
        HttpContent jsonReturned = _completed.Content;
        var jsonRead = await jsonReturned.ReadAsStringAsync();

Posts = JsonConvert.DeserializeObject<ObservableCollection<GridPostModel>>(jsonRead) as ObservableCollection<GridPostModel>;

Пример возвращаемого JSON в переменной jsonRead, как только он назначен из ReadAsStringAsync ()

[{"$ id": "1", "title": "One and done", "LastModifiedByUserId": "32e19260-7313-4eba-99b8-61077aced7a3", "lastModifiedByUser": null}]

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