Фильтр Json из ASP.NET MVC JsonResult из сложного объекта - PullRequest
2 голосов
/ 01 ноября 2010

Я пытаюсь выполнить публикацию из сложного объекта из модели данных, Json, к сожалению, я не хочу передавать всю иерархию (person-> HasMany Orders / Orders HasMany Products и т. Д.), А только «первый уровень»»(Например, имена лиц для вида сетки).

public JsonResult Search(string fMname, string fSname)
{
IList<Person> people = personRepository.FindAllMatchingName(fMname, fSname);
//Here with lazy loading querying only the “first level” for object
var data = people;
return Json(new { items = data });
//Here querying full object hierarchy and return the big Json
}

Я ищу решение для фильтрации объекта Json и - если это возможно - для работы с отложенной загрузкой и во избежание накладных расходов sql.

Есть идеи?

1 Ответ

0 голосов
/ 01 ноября 2010

Создайте упрощенный класс person, который содержит только нужные вам свойства.Затем преобразуйте IList of Person в список упрощенного типа, используя Linq.

public class SimplePerson
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

public JsonResult Search(string fMname, string fSname)
{
    IList<Person> people = personRepository.FindAllMatchingName(fMname, fSname);
    var data = people.Select(m => new SimplePerson() { FirstName = m.FirstName, LastName = m.LastName }).ToList();
    return Json(new { items = data });
}

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

...