程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Automapper ProjectTo membersToExpand 过滤大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Automapper ProjectTo membersToExpand 过滤?

开发过程中遇到Automapper ProjectTo membersToExpand 过滤的问题如何解决?下面主要结合日常开发的经验,给出你关于Automapper ProjectTo membersToExpand 过滤的解决方法建议,希望对你解决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,请注明来意。