Метод, чтобы загружать DataTable

Я хочу возвратить DataTable посредством Json, для чего у меня есть следующее.

В ActionResult.

public ActionResult LoadDataTable(DataTableRequest model) {

        //Creo  un objeto data DataTableAdapter
        DataTableAdapter<Item> result = new DataTableAdapter<Item>();

        //Obtengo datos 
        var totalRows = db.Items.Count();


        Func<Item, Object> orderByFunc = null;            
        //El ordenamiento que vamos a utilizar por default va ser por el Id.
        orderByFunc = item =>item.Id;            

        //Dependiendo de la columna que seleccionemos indicamos si se ordena por el campo Description.
        if (model.order[0]["column"].Equals("1") ) {
            orderByFunc = item => item.Description;
        }

        //Obtenemos el valor a buscar.
        var searchValue = "" + model.search["value"] + "";            

        var queryItem = (from p in db.Items
                         join f in db.Tablas
                         on p.Tablaid equals f.Tablaid
                         select new
                         {
                             Id = p.Id,
                             Description = p.Description,
                             Tipo = f.Nombre,
                         }).ToList()
        .Select(x => new ViewModelItems()
         {
             Id = Convert.ToInt32(x.Id),
             Description = Convert.ToString(x.Description),
             Tipo = x.Tipo,
         });


        db.Items.Where(d => d.Description.Contains(searchValue));
        List<Item> items;

        //Indico cual va ser la manera en que se van a ordenar los datos.
        if (model.order[0]["dir"].Equals("desc"))
        {
            items = queryItem.OrderByDescending(orderByFunc).Skip(model.start + 1).Take(model.length).ToList();
        }
        else {
            items = queryItem.OrderBy(orderByFunc).Skip(model.start + 1).Take(model.length).ToList();

        }            

        //Lleno con información DataTableAdapter

        result.Data = items;
        result.Draw = model.draw;
        result.RecordsTotal = totalRows;
        result.RecordsFiltered = queryItem.Count();

        //Regreso la respuesta Json
        return Content(JsonConvert.SerializeObject(result), "application/json");



    }

Однако проблема коренится в консультации, если я выполняю ее следующего способа.

  var queryItem = (from p in db.Items
                         join f in db.Tablas
                         on p.Tablaid equals f.Tablaid
                         select new
                         {
                             Id = p.Id,
                             Description = p.Description,
                             Tipo = f.Nombre,
                         }).ToList();

Мне показывает следующая ошибка в следующие линии.

Severity Коде Дескриптион Прохект Филе Лине Суппрессион Стате Эррор CS1929 'List <>' does not contain в definition for 'OrderByDescending' and the best расширение method overload 'ParallelEnumerable. OrderByDescending (ParallelQuery, Func)' requires в receiver of type 'Паральелкери' Дататаблеахакспахинатион C:\xxxxx\xxxxxxxxxxxxxxxxxx\Source\Repos\DataTableAjaxPagination\DataTableAjaxPagination\Controllers\HomeController.cs 67 Включил

Сейчас, если я выполняю такую консультацию.

var queryItem = (from p in db.Items
                         join f in db.Tablas
                         on p.Tablaid equals f.Tablaid
                         select new
                         {
                             Id = p.Id,
                             Description = p.Description,
                             Tipo = f.Nombre,
                         }).ToList()
        .Select(x => new ViewModelItems()
         {
             Id = Convert.ToInt32(x.Id),
             Description = Convert.ToString(x.Description),
             Tipo = x.Tipo,
         }).ToList();

Он не показывает никакой ошибки, но не показывает мне какую-либо информацию.

0
задан 06.11.2019, 18:46
1 ответ

Он рекомендовал бы, чтобы ты использовал

var queryItem = (from p in db.Items
                     join f in db.Tablas
                     on p.Tablaid equals f.Tablaid
                     select new ViewModelItems()
                     {
                         Id = p.Id,
                         Description = p.Description,
                         Tipo = f.Nombre,
                     }).ToList();

из этой формы в linq, ты используешь класс такие ViewModelItems как ответ

1
ответ дан 01.12.2019, 12:33