web-dev-qa-db-ja.com

Linq join()-2つのエンティティを結合して1つを選択します

誰かが次の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?

解決するには?

5
Haseeb Sd

元のuserlist変数を宣言しないことで、userListuserListのあいまいさを取り除くことができます。で始まるだけ

var id = 1;
var users = 
    _context.Employee
            .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);

これで、潜在的な変数のシャドーイングまたはキャプタライゼーションの問題との混乱がなくなりました。

0