public class Parent{
public int Id;
public string Name;
public Child Sibling
}
public class Sibling {
public int Id;
public string Name;
public Cousin Cousin
}
public class Cousin{
public int Id;
public string Name;
public DateTime CreatedDate;
}
我試圖壓平或項目對象模型?它這樣
public class ViewModelSibling {
public int Id;
public string Name;
}
public class ViewModel{
public int ParentId;
public string ParentName;
public ViewModelSibling Sibling;
public ViewModelSibling Cousin;
public DateTime? CousinCreatedDate;
}
那裏同胞和表姐可空模型
ControllerCode
[HttpPost]
public virtual ActionResult GetGridItems()
{
IQueryable<Parent> parents = GetParentsWhereCriteriaMet();
var data = parents.Select(p => new ViewModel{
ParentId = p.Id,
ParentName = p.Name,
Sibling = new ViewModelSibling { Id = p.Sibling.Id, Name = p.Sibling.Name},// if p.Sibling is null and exception is thrown
Cousin= new ViewModelSibling {Id =p.Sibling.Cousin.Id, Name = p.Sibling.Cousin.Name}// if p.Sibling or p.Sibling.Cousin are null and exception is thrown
CousinCreatedDate = p.Sibling.Cousin.CreatedDate
})
return new JsonResult { Data = data };
}
我試圖避免使用ToList(),因爲我不希望所有的要返回的父記錄。 ViewModel將使用Ajax綁定到Telerik Grid,這將處理分頁。 我不想使用AutoMapper,因爲我不希望返回所有字段和記錄。
如何在不使用ToList()的情況下展平此模型?
你的問題是什麼? – 2012-03-16 17:29:19
我用這個問題更新了帖子。但總之。如果p.Sibling或p.Sibling.Cousin爲null並拋出異常。如何避免使用ToList或遍歷整個結果集? – Brian 2012-03-16 18:39:41