У меня есть объект User
со слишком большим количеством отношений с другими объектами в системе. И я использую AngularJs и хочу сериализовать объект User
на json только с включенными объектами. Вот мой оператор выбора:Entity Framework Сериализовать объект для json с включенными связанными объектами
var users = unc.Users.Include("Profile").ToList();
при сериализации это JSon всегда приведет к
The operation cannot be completed because the DbContext has been disposed
Я использовал, чтобы решить эту проблему, просто выбирая каждый столбец, что нужно, на мой взгляд, как это:
var users = unc.Users.Select(x => new { x.Id ,x.Username,Role=x.Role.Name,x.Email,x.Profile.Name,x.UpdatedAt,x.CreatedAt}).ToList();
, но это слишком сложно и много кода для написания. Я ищу идеальное или лучшее решение.
Thanks
Вы не должны получать это сообщение, если вы сделали ToList(). Является ли ваш код сериализации ссылкой на контекст? –
@SteveGreene На самом деле это правильно, чтобы получить это сообщение, потому что, когда вы сериализуете сущность, сериализатор json попытается выполнить сериализацию всех свойств ownd этого объекта, чтобы вы получили это сообщение. –
Возможно, посмотрите на время жизни вашего контекста и расширьте его. http://stackoverflow.com/questions/18261732/the-operation-cannot-be-completed-because-the-dbcontext-has-been-disposed-exce –