Начните проще и используйте отладчик.
var query = _context.Records.AsQueryable();
var records = query.ToList();
return Json(records, JSonRequestBehavior.AllowGet);
если вы предпочитаете синтаксис linq:
var query = from r in _context.Records
select r;
... установите точку останова на var records = query.ToList();
и убедитесь, что вы получаете результаты. Если вы получаете результаты, то проблема может заключаться в том, что IQueryable
передает Json. Если вы все еще не получаете результаты, дважды проверьте строку подключения.
Я рекомендую избегать передачи сущностей обратно для просмотра логики, это просто чревато проблемами, которые возникают при ленивой загрузке и работе с отключенными сущностями и повторным связыванием сущностей с DbContexts в двустороннем цикле. Я использую объекты для сопоставления доменов и просмотра моделей для представления данных для представления. Преимущество состоит в том, чтобы избежать вышеупомянутых проблем с отложенной загрузкой и т. Д., А также из данных с точки зрения проводной связи, которые, как правило, не нужно отправлять каждое значение и дочернюю ссылку для каждой сущности. Модели представлений отражают данные, необходимые для представления, и могут при необходимости выравниваться из домена.
var viewModels = _context.Records
.Select(x => new RecordViewModel
{
RecordId = x.RecordId,
//...
}).ToList();
return Json(viewModels, JSonRequestBehavior.AllowGet);
Вы можете использовать Automapper, например, чтобы помочь управлять отображением между сущностью и моделью представления.