在ASP.NET MVC中,实体框架和视图模型可以用于实现父子关系。下面是一个示例解决方法:
首先,定义父实体和子实体类:
public class Parent
{
public int Id { get; set; }
public string Name { get; set; }
public List Children { get; set; }
}
public class Child
{
public int Id { get; set; }
public string Name { get; set; }
public int ParentId { get; set; }
public Parent Parent { get; set; }
}
然后,定义父实体和子实体的视图模型类:
public class ParentViewModel
{
public int Id { get; set; }
public string Name { get; set; }
public List Children { get; set; }
}
public class ChildViewModel
{
public int Id { get; set; }
public string Name { get; set; }
}
在控制器中,可以使用实体框架查询父实体及其关联的子实体,并将其映射到视图模型:
public ActionResult Index()
{
var parents = dbContext.Parents.Include(p => p.Children).ToList();
var parentViewModels = parents.Select(p => new ParentViewModel
{
Id = p.Id,
Name = p.Name,
Children = p.Children.Select(c => new ChildViewModel
{
Id = c.Id,
Name = c.Name
}).ToList()
}).ToList();
return View(parentViewModels);
}
在视图中,可以按照需要展示父实体和子实体的信息:
@model List
@foreach (var parent in Model)
{
@parent.Name
@foreach (var child in parent.Children)
{
- @child.Name
}
}
这样,你就可以在ASP.NET MVC中实现父子关系的视图模型和实体框架了。