このクエリを実行するより効率的な方法はありますか?生成されたEFクエリにこのLinqを行うより効率的な方法はありますか?
var subscriptions = from user in Db.User
from city in Db.City
where user.City.Select(x => x.Id).Contains(city.Id)
&& user.Id == User.Id
select city.Id;
声明
SELECT
[Extent2].[Id] AS [Id]
FROM [dbo].[User] AS [Extent1]
CROSS JOIN [dbo].[City] AS [Extent2]
WHERE (EXISTS (SELECT
1 AS [C1]
FROM [dbo].[UserCity] AS [Extent3]
WHERE ([Extent1].[Id] = [Extent3].[UserId]) AND ([Extent3].[CityId] = [Extent2].[Id])
)) AND ([Extent1].[Id] = @p__linq__0)
これは 'User'と' City'の多対多の関係です。 'u => u.City'は' City'のコレクションなので、これはうまくいきません –
これは今でも些細なことです。私はあなたのために編集します。 –
それが正しいのではない場合は、あなたの質問に戻り、テーブルの詳細を書いてください。そうすれば、より良い答えを得ることができます。乾杯。 –