有人可以帮助我进行以下 linq 查询吗?
var userList = _context.Employee.AsQueryable();
var id = 1;
userList = userList
.Join(_context.EmployeePermission,
ul => ul.EmployeeId,
p => p.EmployeeId,
(userlist, perm) => new { Employee = userList, Permisson = perm })
.Where(empAndPerm => empAndPerm.Permisson.Trading >= 1 && empAndPerm.Permisson.EmployeeId == id)
.Select(x => x.Employee);
我收到以下错误;
Cannot implicitly convert type
'System.Linq.IQueryable<System.Linq.IQueryable<Models.Employee>>' to
'System.Linq.IQueryable<Models.Employee>'. Are you missing a cast?
如何解决?
最佳答案
您的代码中似乎有打印错误
(userlist, perm) => new { Employee = userList, Permisson = perm })
用户列表 必须替换为 用户列表 . 用户列表 指
System.Linq.IQueryable
在第一行:var userList = _context.Employee.AsQueryable();
但是用户列表 引用匿名方法的参数是正确的项目。
所以第七行必须改为:
(userlist, perm) => new { Employee = userlist, Permisson = perm })
后记:
您的代码需要一些不在此问题范围内的增强功能。这些增强功能取决于您的业务需求。但我提到了一些潜在的错误:
此 DotnetFiddle Sample可能会帮助您选择最适合您需求的方法。
关于c# - Linq join() - 加入两个实体并选择一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61870871/