选择dynimc columns.Net Core EF-LINQ

选择dynimc columns.Net Core EF-LINQ,linq,asp.net-core,asp.net-core-webapi,Linq,Asp.net Core,Asp.net Core Webapi,我正在使用.Net Core 2.2&EF创建一个API,我想实现一个返回报告数据的函数,但报告数据取决于角色,例如,我希望管理员查看所有数据,但HR只查看特定数据,经理也查看,等等 作为示例,下面的代码将获得我想要查看的数据 var data = await _context.Employees .Where(e => e.CompanyForeignKey == user.CompanyForeignKey)

我正在使用.Net Core 2.2&EF创建一个API,我想实现一个返回报告数据的函数,但报告数据取决于角色,例如,我希望管理员查看所有数据,但HR只查看特定数据,经理也查看,等等

作为示例,下面的代码将获得我想要查看的数据

 var data = await _context.Employees
                    .Where(e => e.CompanyForeignKey == user.CompanyForeignKey)
                    .Select(e => new
                    {
                        e.FullName_FL,
                        e.FullName_SL,
                        PositionName_FL = e.Position.Name_FL,
                        PositionName_SL = e.Position.Name_SL,
                        DepartmentName_FL = e.Department.Name_FL,
                        DepartmentName_SL = e.Department.Name_SL,
                        e.HiringDate,
                    })
                    .OrderBy(e => e.HiringDate)
                    .ToListAsync();
但我也希望管理员看到以下专栏

 var data = await _context.Employees
                    .Where(e => e.CompanyForeignKey == user.CompanyForeignKey)
                    .Select(e => new
                    {
                        e.FullName_FL,
                        e.FullName_SL,
                        PositionName_FL = e.Position.Name_FL,
                        PositionName_SL = e.Position.Name_SL,
                        DepartmentName_FL = e.Department.Name_FL,
                        DepartmentName_SL = e.Department.Name_SL,
                        e.HiringDate,
                        e.ServicePeriod,
                        e.ServicePeriodMonths,
                        e.ServicePeriodYears,
                        e.BirthDate,
                        e.ExemptedFromTaxes,
                        e.PaymentMethod,
                        BankName_FL = e.Bank.Name_FL,
                        BankName_SL = e.Bank.Name_SL,
                        e.BankAccountNumber,
                        e.ExemptedFromSocialInsurance,
                        SocialInsuranceOfficeName_FL = e.SocialInsuranceOffice.Name_FL,
                        SocialInsuranceOfficeName_SL = e.SocialInsuranceOffice.Name_SL,

                    })
                    .OrderBy(e => e.HiringDate)
                    .ToListAsync();
我试图从一个函数中获取不同角色的数据。 所以我的问题是,有没有办法为不同的角色获取自定义列,例如:

 var data = await _context.Employees
                    .Where(e => e.CompanyForeignKey == user.CompanyForeignKey)
                    .Select(e => Role.customObjectHandler)
                    .OrderBy(e => e.HiringDate)
                    .ToListAsync();

提前谢谢

这有什么帮助吗?您的数据模型与您从API返回的模型是分开的,还是直接从控制器返回此查询的结果?我直接从控制器返回查询结果这有帮助吗?您的数据模型与您从API返回的模型是分开的,还是您直接从控制器返回此查询的结果?我直接从控制器返回查询结果