2

我正在尝试从数据模型的复杂对象 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 开销。

有任何想法吗?

4

1 回答 1

0

创建一个仅包含您需要的属性的简化人员类。然后使用 Linq 将 Person 的 IList 转换为简化类型的列表。

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 });
}

您可以改用匿名类型,但它不会在视图中被强类型化。

于 2010-11-01T15:13:46.287 回答