【发布时间】:2019-11-19 07:02:13
【问题描述】:
我检索到IEnumerable<ViewmodelA> 类型的列表,需要将此列表转换为IEnumerable<ViewmodelB>。每个viewmodel 都有相同和不同的属性,我只想映射相同的属性(姓名和姓氏)。是否可以使用拳击或AutoMapper?我试过拳击,但它不起作用:(
IEnumerable<ViewmodelB> newList;
newList = (IEnumerable<ViewmodelB>)demoService.GetList(); //returns IEnumerable<ViewmodelA>
ViewodelA:
public class ViewmodelA {
public string Name { get; set; }
public string Surname { get; set; }
public string School { get; set; }
public string Number { get; set; }
}
ViewodelB:
public class ViewmodelB {
public string Name { get; set; }
public string Surname { get; set; }
public string Work { get; set; }
public string Address { get; set; }
}
【问题讨论】:
-
您不能“投射”不同或不兼容类型的东西。您可以“转换”它们,但前提是存在合理的转换。为什么你认为你可以转换这些对象?
-
“我试过拳击”????您能否解释一下与帖子中显示的代码相关的含义? (没有显示
struct- 那么您希望拳击到底发生在哪里?) -
@Enigmativity 因为有一个服务正在检索
IEnumerable<ViewmodelA>中的列表,我想使用这种方法。另一方面,我有一些额外的属性,不想修改 ViewmodelA,因为它是通用视图模型。 -
@AlexeiLevenkov
(IEnumerable<ViewmodelB>)demoService.GetList() -
@hexadecimal 抱歉,那一行是什么意思?这是对我关于“拳击”问题的某种回答吗?
标签: c# asp.net asp.net-mvc asp.net-core viewmodel