实体框架中的多个连接

Wel*_*ing 2 c# sql sql-server entity-framework

我在TSQL中有以下查询

select * from users 
inner join linkUserPhoneNumber on users.UserId = linkUserPhoneNumber.UserId
INNER JOIN PhoneNumber ON PhoneNumber.PhoneNumberId =
    linkUserPhoneNumber.PhoneNumberId
    where UserName = 'superuser' and password ='password'
Run Code Online (Sandbox Code Playgroud)

我在Entity Framework中有以下查询

var query = (from u in myEntities.Users
  join link in myEntities.linkUserPhoneNumbers on u.UserId equals link.UserId 
  join p in myEntities.PhoneNumbers on p.PhoneNumberId equals link.PhoneNumberId
  where u.UserName == Username && u.Password == Password
  select u).ToList();
Run Code Online (Sandbox Code Playgroud)

当我尝试编译它时,我得到了

错误3名称'p'不在'equals'左侧的范围内.考虑交换'equals'两侧的表达式.
错误4"链接"名称不在"等于"右侧的范围内.考虑交换'equals'两侧的表达式.

JCo*_*ine 6

究竟错误在说什么

p.PhoneNumberId equals link.PhoneNumberId 
Run Code Online (Sandbox Code Playgroud)

应该

link.PhoneNumberId equals p.PhoneNumberId
Run Code Online (Sandbox Code Playgroud)

完整代码

var query = (from u in myEntities.Users
  join link in myEntities.linkUserPhoneNumbers on u.UserId equals link.UserId 
  join p in myEntities.PhoneNumbers on link.PhoneNumberId equals p.PhoneNumberId
  where u.UserName == Username && u.Password == Password
  select u).ToList();
Run Code Online (Sandbox Code Playgroud)