C# 无法将查询转换为EF Core

C# 无法将查询转换为EF Core,c#,asp.net,asp.net-core,aspnetboilerplate,C#,Asp.net,Asp.net Core,Aspnetboilerplate,我正在使用asp.net样板文件,并尝试通过bool标志和权限筛选用户 下面是方法代码 private async Task<List<User>> GetAdminUsers() { using (UnitOfWorkManager.Current.DisableFilter(AbpDataFilters.MayHaveTenant)) { var adm

我正在使用asp.net样板文件,并尝试通过bool标志和权限筛选用户

下面是方法代码

private async Task<List<User>> GetAdminUsers()
    {
        using (UnitOfWorkManager.Current.DisableFilter(AbpDataFilters.MayHaveTenant))
        {
            
            
            var adminUsers = await _userManager.Users.Where(x => x.IsFuelAdmin && _permissionChecker
                .IsGranted(new UserIdentifier(null, x.Id), 
                    FuelAdministratorPermissions.Pages_Administration_Missing_PreQual_LoanAmount_Email_Notifications))
                .ToListAsync();
            
           
            
            return adminUsers;
        }
    }
但由于这个错误,它失败了

ionHandling.ABPEExceptionFilter:LINQ表达式“DbSet” .其中u=>uuu ef_filter_uup_0||!ISoftDeleteu.IsDeleted&uuuuuuu ef_ufilter\uuuuu p_124;u 1 | iMAYHAVETENTATU.TENTATID==uuuuuuu ef_ufilter\uuuuuu currentTeNTATID\u2 .Whereu=>u.IsFuelAdmin 。其中u=>\uuuuu许可证检查器\u 0 用户:新用户标识符 无效的 u、 身份证 , permissionName:无法翻译Pages.Administration.QualificationChecks.LoanAmount\u电子邮件\u通知。以可以翻译的形式重写查询,或者通过插入对AsEnumerable、AsAsAsAsyncEnumerable、ToList或ToListSync的调用显式切换到客户端计算


如何解决此问题?

您可以定义其他属性(例如IsAdmin),并在查询之前在运行时进行设置。

数据库服务器上没有isgrated函数。您无法将isgrated用作db函数

如果要使用本地C isgrated,请将adminUsers放入C本地列表并进行筛选,然后为isgrated:

var adminUsers = await _userManager.Users.Where(x => x.IsFuelAdmin).ToListAsync();
对于完整的SQL查询,您必须通过以下方式与用户建立连接查询:

userRoleRepository,userPermissionRepository,rolePermissionRepository

查看接受答案:

错误很明显。无法将LINQ查询转换为SQL。没有办法将本地函数调用转换为SQL