1

我有一个名为Employee 的视图模型类和一个名为Employees 的EF 实体。如果我编写以下查询,我会收到一条错误消息,指出“无法转换类型,已存在显式转换)我知道如何使用 select new ViewModel.Employee 子句来解决这个问题,但想知道是否有任何简洁的方法来解决这个问题?任何帮助将不胜感激-谢谢

var selectedEmployee = (from q in emsCtx.Employees
                                                where q.Id == employee.Id
                                                select q).ToList().FirstOrDefault();
                       employeeData.Employees = selectedEmployee;     
4

1 回答 1

1

如果你有两种不同的类型,即使它们具有相同的属性,你也需要在它们之间做映射。您可以通过多种不同方式执行此操作,但是AutoMapper之类的工具可以提供帮助。如果您的类型在公共属性上基本(或完全)相似,AutoMapper 非常好。

AutoMapper 将允许您在两种类型之间进行映射配置,然后将它们映射。

例如,像这样:

Mapper.CreateMap<DataAccess.Employee, ViewModels.Employee>();

var dataEmployee = // data access

var viewModelEmployee = Mapper.Map(dataEmployee);
于 2013-04-01T11:15:07.063 回答