automapper - 从 Automapper 映射 IQueryable 类

标签 automapper

Automapper 可以与 IQueryable 一起使用吗?

我有 2 个查询

IQueryable<V_ImageUpload> Query1;
IQueryable<V_ImageUpload> Query2;

Mapper.CreateMap<IQueryable<V_ImageUpload_WithReceiptBackup>, IQueryable<V_ImageUpload>>();
Query1 = Mapper.Map<IQueryable<V_ImageUpload_WithReceiptBackup>, IQueryable<V_ImageUpload>>(Query2);

发生的异常是:

System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary

最佳答案

我没有使用过 AutoMapper(所以这是尝试一下的借口!),但是有 queryable extensions可用的。您的两个可查询项都是同一类型,所以我不太确定您想要实现什么,但也许这样的东西就是您想要的,它需要 IQueryable<V_ImageUpload_WithReceiptBackup>并将其转换为IQueryable<V_ImageUpload> :

IQueryable<V_ImageUpload_WithReceiptBackup> query1;
IQueryable<V_ImageUpload> query2;
// Only map the actual type, not the queryable types
Mapper.CreateMap<V_ImageUpload_WithReceiptBackup, V_ImageUpload>();
query2 = query1.Project().To<V_ImageUpload>();

.Project().To<V_ImageUpload>()保持为IQueryable ,而Mapper.Map最终会得到 List/IEnumerable 。我仅使用 LINQ to Objects 对此进行了测试,但希望它适用于 Entity Framework 或您正在使用的任何内容。

关于automapper - 从 Automapper 映射 IQueryable 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24245082/

相关文章:

c# - 全局异常过滤器或 Application_Error 都没有捕获未处理的异常

c# - 如何使用 AutoMapper 处理 "inflate"实体

automapper - 映射这个属性需要什么表达式?

c# - 具有通用扩展方法的 AutoMapper 映射

c# - .Net Core 3.1 上的 AutoMapper

.net - Automapper IList-方法实现中主体的签名和声明不匹配

AutoMapper 多对多关系转化为集合

c# - 自动映射器将深对象自动映射到平面对象并返回

unit-testing - MVC Core 2.0 单元测试和自动映射器

c# - automapper 文档不完整