2012-07-18 140 views
2

我在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' 

我在实体框架下面的查询

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(); 

当我尝试编译它,我得到

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

+0

我想你复制粘贴,这样我就可以看到一个 'eqals'这可能是'等于' – Amedio 2012-07-18 09:03:00

回答

5

p.PhoneNumberId equals link.PhoneNumberId 

应该是究竟是什么错误是说

link.PhoneNumberId equals p.PhoneNumberId 

的完整代码

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(); 
+0

谢谢,这很简单。我想我一直在做TSQL很长一段时间,我没有注意到。再次感谢 – 2012-07-18 09:17:04