我无法找到创建复杂 ViewModel 的正确方法。
B类型号:
public class A{public int A_id;}
public class B{
public int B_id;
public string Name;
public virtual ICollection<A> A_Items;
}
视图模型 C 类:
public class C {public int B_id; public CountOfA;}
所以我试图找到另一种方法来包含 B 类中 A 的出现次数并将其放入 ViewModel 类 C 中。目前我可以通过创建自定义 IResolver 类来做到这一点,就像这样。
CreateMap<B,C>().ForMember(dest => dest.CountOfA, opt => opt.ResolveUsing<ListToCountResolver>());
所以然后在控制器中我使用“包含”方法来包含“A_Items”,这很好用。但是必须有一种更好的方法,当我想要的只是一个简单的 COUNT(*) 行时,不要从数据库中获取整个列表。或者每次我试图从 B 类中获取一些自定义值时,我是否必须创建一个自定义解析器。获取行数只是一个示例,但是如果我想使用 AutoMapper 将“A”集合的“名称”转换为单个字符串,用逗号分隔怎么办。那可能吗?仅供参考,我对 MVC 世界还很陌生,我正在努力坚持“精益控制器”、“胖模型”和“虚拟视图”的设计建议,这样我就可以遵循良好的实践。感谢您的输入。