Asp.net mvc 4 具有自引用类的映射
我正在尝试使用automapper将下面的Employee域对象映射到EmployeeViewModel 我能够映射属性,如Id、FirstName、LastName。但无法映射下属属性 使用了Asp.net mvc 4 具有自引用类的映射,asp.net-mvc-4,automapper,Asp.net Mvc 4,Automapper,我正在尝试使用automapper将下面的Employee域对象映射到EmployeeViewModel 我能够映射属性,如Id、FirstName、LastName。但无法映射下属属性 使用了Mapper.CreateMap(),但不知道如何映射从属属性 任何人都可以帮助如何映射下面的类 public class Employee { public int Id {get; set;} public int FirstName{get; set;} public int LastN
Mapper.CreateMap()
,但不知道如何映射从属属性
任何人都可以帮助如何映射下面的类
public class Employee
{
public int Id {get; set;}
public int FirstName{get; set;}
public int LastName{get; set;}
public Employee Manager{get; set;}
}
public class EmployeeViewModel
{
public int Id {get; set;}
public int FirstName{get; set;}
public int LastName{get; set;}
public List<Employee> Subordinates {get; set;}
}
公共类员工
{
公共int Id{get;set;}
public int FirstName{get;set;}
public int LastName{get;set;}
公共员工经理{get;set;}
}
公共类EmployeeViewModel
{
公共int Id{get;set;}
public int FirstName{get;set;}
public int LastName{get;set;}
公共列表下属{get;set;}
}
查看
@helper ShowTree(IEnumerable<EmployeeViewModel> emp)
{
<ul>
@foreach (var e in emp)
{
<li>
@e.FirsyName
@if (e.Children.Any())
{
@ShowTree(e.Children)
}
</li>
}
</ul>
}
@helper ShowTree(IEnumerable emp)
{
@foreach(emp中的变量e)
{
-
@e、 FirsyName
@if(如Children.Any())
{
@ShowTree(如儿童)
}
}
}
谢谢,
-Naren因为员工实体不包含名为“下属”的列表属性,所以它不会自动映射。要将映射到“下属”属性,您需要将viewmodel下属属性更改为同一类型,即名为manager的Employee对象
public class Employee()
{
public int Id {get; set;}
public int FirstName{get; set;}
public int LastName{get; set;}
public Employee Manager {get; set;}
}
public class EmployeeViewModel()
{
public int Id {get; set;}
public int FirstName{get; set;}
public int LastName{get; set;}
public Employee Manager {get; set;}
}
但是从上面看,没有点映射对象,因为您的视图直接类似于您的域雇员对象。仅当需要更改域实体以表示视图时,才使用viewmodel
现在还不清楚你想做什么,如果你展示你的观点,我可以提供更多帮助。你能详细说明一下吗。向我们显示您的自动映射配置,如果有错误,请说明错误所在?我使用了Mapper.CreateMap();,但是我不知道如何映射下属属性。您好,我正在尝试在我的视图页面上构建树视图,我正在尝试将Employee转换为EmployeeViewModel,以便轻松进行树视图转换。@Narendra V Yes然后更新您的问题,包括您的视图页面编码。我还可以看到加载视图模型并将其传递给视图的操作。