Как построить JSON на основе 3 таблиц, используя Entity Framework - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь отобразить JSON с помощью метода JsonResult в MVC, я использую Entity Framework, но моя проблема в том, что PostMan отображает ошибку сервера:

Экземпляр ObjectContext был удален и не можетбольше используется для операций, требующих подключения.

Я использую запрос, который включает в себя 3 разные таблицы, однако одна из этих таблиц может получить более 3 разных строк.

Это мой код:

[HttpGet]
    [AllowAnonymous]
    public JsonResult RetreiveResume(int User)
    {
        using (var context = new DexusEntities())
        {
            var collection = (from p in context.CND_PersonalData join
                              pd in context.CND_ProfessionalData on p.UserId equals pd.UserId join
                              ex in context.CND_ExperiencesData on p.UserId equals ex.UserId select p).ToList();
            return Json(collection, JsonRequestBehavior.AllowGet);
        }
    }

Что не так с моим кодом?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 27 марта 2019

Переместить обратную строку после использования.Вы удаляете контекст только после попытки вернуть результаты.Вы можете проверить эту ссылку для получения дополнительной информации: Что произойдет, если я вернусь до окончания использования оператора?Будет ли называться распоряжение?

[HttpGet]
[AllowAnonymous]
public JsonResult RetreiveResume(int User)
{
    var collection = new CND_PersonalData();

    using (var context = new DexusEntities())
    {
        context.Configuration.LazyLoadingEnabled = false; 
        collection = (from p in context.CND_PersonalData join
                          pd in context.CND_ProfessionalData on p.UserId equals pd.UserId join
                          ex in context.CND_ExperiencesData on p.UserId equals ex.UserId select p).ToList();
    }

    return Json(collection, JsonRequestBehavior.AllowGet);
}
0 голосов
/ 27 марта 2019

Не могли бы вы попытаться поставить возврат после скобок, как показано ниже:

using (var context = new DexusEntities())
        {
            var collection = (from p in context.CND_PersonalData join
                              pd in context.CND_ProfessionalData on p.UserId equals pd.UserId join
                              ex in context.CND_ExperiencesData on p.UserId equals ex.UserId select p).ToList();
            return Json(collection, JsonRequestBehavior.AllowGet);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...