我有一个名为Employee的视图模型类和一个名为Employees的EF实体。如果我写下面的查询,我得到一个错误,指出“无法转换类型,已经存在显式转换”我知道如何使用select new ViewModel.Employee子句来解决这个问题,但是想知道是否有任何简洁的方法来解决这个问题?非常感谢帮助-thanks
var selectedEmployee = (from q in emsCtx.Employees
where q.Id == employee.Id
select q).ToList().FirstOrDefault();
employeeData.Employees = selectedEmployee;
答案 0 :(得分:1)
如果您有两种不同的类型,即使它们具有相同的属性,您也需要在它们之间进行映射。您可以通过多种方式执行此操作,但AutoMapper之类的工具可以提供帮助。如果您的类型在他们拥有的公共属性中大部分(或完全)相似,那么AutoMapper非常好。
AutoMapper将允许您在两种类型之间进行映射配置,然后映射它们。
例如,像这样:
Mapper.CreateMap<DataAccess.Employee, ViewModels.Employee>();
var dataEmployee = // data access
var viewModelEmployee = Mapper.Map(dataEmployee);