我不是Linq的新手,但无论如何我无法解决这个问题.
可以说我有以下型号.显然这是样本模型.
public class Parent
{
public int Id { get; set; }
public List<Child> Children { get; set; }
public DateTime CreateDate { get; set; }
}
public class Child
{
public int Id { get; set; }
public List<Toys> Toys { get; set; }
public DateTime CreateDate { get; set; }
}
public class Toys
{
public string Id { get; set; }
public string Name { get; set; }
public DateTime CreateDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想要的是将它们转换为ViewModels.这是我的ViewModel的定义方式
public class ParentViewModel
{
public int Id { get; set; }
public List<ChildViewModel> Children { get; set; }
}
public class ChildViewModel
{
public int Id { get; set; }
public List<ToysViewModel> Toys { get; set; }
}
public class ToysViewModel
{
public string Id { get; set; }
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如何选择模型并将其转换为viewModels.这是我已经尝试过的.
var q = from p in dbContext.Parents
where p.Id = 123
select new ParentViewModel
{
Id = p.Id,
Children = ???
};
Run Code Online (Sandbox Code Playgroud)
如何获得儿童及其玩具清单?
提前致谢!
Jon*_*Jon 11
如果关系在数据库中正确建模,那么
select new ParentViewModel
{
Id = p.Id,
Children = p.Children.Select(c => new ChildViewModel {
Id = c.Id,
Toys = c.Toys.Select(t => new ToyViewModel { ... }).ToList()
}).ToList()
};
Run Code Online (Sandbox Code Playgroud)