У меня есть такая объектная модель
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 будет привязан к Telerik Grid с помощью Ajax, это обрабатывает пейджинг.
Я не хочу использовать AutoMapper, потому что я не хочу, чтобы все поля и записи возвращались.
Как выровнять эту модель без использования ToList ()?