我想从数据模型,一个JSON一个复杂的对象后,不幸的是,我并不想通过所有的层级(人 - >的hasMany订单/订单的hasMany产品等),但只有“第一级”(例如用于在网格视图人的名称)。

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开销

任何想法?

有帮助吗?

解决方案

生成一个简化的Person类仅包含您需要的属性。然后变换的人与IList到使用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 });
}

你可以使用匿名类型来代替,但它不会在视图中强类型。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top