大佬教程收集整理的这篇文章主要介绍了Automapper ProjectTo membersToExpand 过滤,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
据我所知,EF Core v5 支持在 .Include()
表达式中进行过滤。
例如(我使用愚蠢的 DB 只是为了测试所以实体没有意义)
var result = dbContext
.Details
.Include(e => e.Permissions
.Where(p => p.UniquEID == GuID.Parse("DCADF7F5-5B86-4A6C-9C7F-6B3D4B55FF27")))
.ToList();
该代码生成 sql:
SELECT [d].[UniquEID],[d].[DetailsText],[t].[UniquEID],[t].[DetailsID],[t].[employeEID],[t].[PermissionDescription],[t].[Permissionname]
FROM [Details] AS [d]
left JOIN (
SELECT [p].[UniquEID],[p].[DetailsID],[p].[employeEID],[p].[PermissionDescription],[p].[Permissionname]
FROM [Permissions] AS [p]
WHERE [p].[UniquEID] = 'dcadf7f5-5b86-4a6c-9c7f-6b3d4b55ff27'
) AS [t] ON [d].[UniquEID] = [t].[DetailsID]
ORDER BY [d].[UniquEID],[t].[UniquEID]
这里我看到了文件管理器 WHERE [p].[UniquEID] = 'dcadf7f5-5b86-4a6c-9c7f-6b3d4b55ff27'
但是当我尝试这样使用时:
var result = dbContext
.Details
.ProjectTo<DetailsDto>(
mapper.ConfigurationProvIDer,i => i.Permissions
.Where(p => p.UniquEID == GuID.Parse("DCADF7F5-5B86-4A6C-9C7F-6B3D4B55FF27"))
)
.ToList();
我看到这个 sql:
SELECT [d].[DetailsText],[d].[UniquEID],[p].[Permissionname],[p].[UniquEID]
FROM [Details] AS [d]
left JOIN [Permissions] AS [p] ON [d].[UniquEID] = [p].[DetailsID]
ORDER BY [d].[UniquEID],[p].[UniquEID]
通过指定 @H_578_3@membersToExpand 我看到正确的连接语句但没有应用过滤器。
有没有办法通过 ProjectTo
过滤包含的导航属性?
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的Automapper ProjectTo membersToExpand 过滤全部内容,希望文章能够帮你解决Automapper ProjectTo membersToExpand 过滤所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。