【问题标题】:Multiple Join in Entity Framework实体框架中的多重连接
【发布时间】:2012-07-18 09:00:00
【问题描述】:

我在 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' 左侧的范围内。考虑交换 'equals' 两边的表达式。
错误 4 名称 'link' 不在 'equals' 右侧的范围内。考虑交换 'equals' 两边的表达式。

【问题讨论】:

  • 我想你是复制粘贴的,所以我可以看到一个可能是 'equals' 的 'eqals'

标签: c# sql sql-server entity-framework


【解决方案1】:

错误是什么意思

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

【讨论】:

  • 谢谢,这很简单。我想我已经做 TSQL 这么久了,我没有注意到。再次感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多