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'

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

コンパイルしようとすると、

エラー 3 名前 'p' は 'equals' の左側のスコープ内にありません。「等しい」の両側の式を交換することを検討してください。
エラー 4 名前 'link' は 'equals' の右側のスコープ内にありません。「等しい」の両側の式を交換することを検討してください。

4

1 に答える 1

9

まさにエラーが言っていること

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();
于 2012-07-18T09:10:57.677 に答える