C# 映射AutoMapper.QueryableExtensions时未调用IValueResolver.Resolve
我正在尝试在AutoMapper中映射IQueryable数据C# 映射AutoMapper.QueryableExtensions时未调用IValueResolver.Resolve,c#,asp.net,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,我正在尝试在AutoMapper中映射IQueryable数据 namespace Soure { public class Employee { public int Id { get; set; } public string Name { get; set; } public Department dept { get; set; } public Employee() {
namespace Soure
{
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
public Department dept { get; set; }
public Employee()
{
this.Id = 1;
this.Name = "Test Name";
this.dept = new Department();
}
}
public class Department
{
public int DeptId { get; set; }
public string DeptName { get; set; }
public Department()
{
DeptId = 2;
DeptName = "Test Dept";
}
}
}
namespace destination
{
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
public Department dept { get; set; }
}
public class Department
{
public int DeptId { get; set; }
public string DeptName { get; set; }
}
}
var empList = new List<Soure.Employee>() { new Soure.Employee(), new Soure.Employee() }.AsQueryable();
Mapper.CreateMap<Soure.Employee, destination.Employee>();
Mapper.CreateMap<Soure.Department, destination.Department>().ForMember(d => d.DeptId, s => s.MapFrom(sou => 7));
Mapper.AssertConfigurationIsValid();
var mappedEmp = empList.Project().To<destination.Employee>();
我想调用ResolutionResult IValueResolver.ResolveResolutionResult源
方法的映射。
但是没有人打电话给它
当我使用MapsourceObject时
此映射程序调用ResolutionResult IValueResolver.ResolveResolutionResult源
因为我有可查询的映射,所以我不能使用MapsourceObject
或者,是否有其他方法替代ResolutionResult IValueResolver.ResolveResolutionResult源,该源适用于AutoMapper.QueryableExtensions值解析程序。LINQ提供程序不能解释任何随机的代码位,它必须由EF/NHibernate等进行解释。AutoMapper仅将表达式树传递给LINQ提供程序
您的示例使用MapFrom而不是ResolveUsing,因此我无法判断您尝试执行的操作是否可行。另外,您的示例使用了AsQueryable,这是一种欺骗——内存中的查询可以实现很多事情,而基于DB的查询提供程序则无法实现这些事情。我尝试过ResolveUsing,因为它需要IValueResolver,而IValueResolver不支持Queryable,这就是为什么我尝试使用MapFrom实现同样的功能。如何使用MapFrom实现相同的功能?或者以其他方式实现相同的功能。具体实现什么?您在示例中显示的代码在LINQ中运行良好。是的,上面的代码运行良好。但是我想给func而不是7。我有一个查询,因为我刚刚问了另一个问题,所以我在接下来的1.5个小时内阻止了它,但我想立即得到它。它与linq有关。你能帮我更新你的代码以显示你遇到的实际问题吗?