以下のように、linq to entity クエリを記述しようとしています。
var lst = (from rw in ctx.Reviews
where rw.RefId == 10
&& rw.UpdatedTime == (from inner in ctx.CompareReviews
where inner.RefId == 10
&& inner.ReviewNumber == rw.ReviewNumber
select inner.UpdatedTime).Max()
select rw).ToList();
次のクエリが生成されることを期待しています。
select *
from review rw
where rw.ref_id = 10
and rw.updated_time = (select max(irw.updated_time)
from review irw
where irw.ref_id = 10
and irw.review_number = rw.review_number)
しかし、そうではありません。次のようなクエリが生成されます。
select rw.id,
/* .. other fields */
(
select max(irw.updated_time)
from review irw
where irw.ref_id = 10
and irw.review_number = rw.review_number
) as updated_time
from review rw
where rw.ref_id = 10
エンティティ フレームワークで最初のクエリを生成するにはどうすればよいですか。