2

残念ながら、データモデル、Json から複雑なオブジェクトから投稿しようとしていますが、残念ながら、すべての階層 (person->HasMany Orders/ Orders HasMany Products など) を渡したくはありませんが、「最初のレベル」のみ (forグリッド ビューの人名の例)。

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

必要なプロパティのみを含む単純化された人物クラスを作成します。次に、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 });
}

代わりに匿名型を使用できますが、ビューでは厳密に型指定されません。

于 2010-11-01T15:13:46.287 に答える