这是一个自动化专业人员的问题。我已经试着做了几天的查询映射-没有运气。看起来Automapper并不打算以我想要的方式使用。但也许我错了。所以问题是..。
我有这样的课程:
我想在我的数据访问层中编写一个通用的读取函数,如下所示:
IEnumerable<CatDto> Read(IQueryable<CatDto> query) {
// here "query" is converted
// to Entity Framework query by means of AutoMapper,
// EF query gets executed,
// I convert EF entities (Cat) back to CatDto - this is not essential
// result is returned
}我会用不同的方式称呼这一功能。示例:
var q = new ObjectModel.Collection(Of CatDto)).AsQueryable();
q = q.Where(c => c.Toys.Count() > 1);
var someResultVar = Read(q);到目前为止,任何实现此类行为的尝试都失败了。我想知道Automapper是这里的助手还是我完全走错了路?
发布于 2016-06-23 16:36:35
我相信你想要的功能是在UseAsDataSource中
您不能映射IQueryable,但不需要使用UseAsDataSource示例
IQueryable<CatDto> someResultVar = new ObjectModel.Collection(Of CatDto)).AsQueryable().UseAsDataSource().For(Of OrderLineDTO).Where(c => c.Toys.Count() > 1);枚举时,它会将Lambda从CatDto转换为CatEf,并调用ProjectTo<CatDto>并返回CatDto对象
https://stackoverflow.com/questions/37965593
复制相似问题