Вы все еще можете сделать его чище, как это:
var c = (from co in db.countries
where co.regionID == 5
select co).Take(50);
Это приведет к:
Table(country).Where(co => (co.regionID = Convert(5))).Take(50)
Эквивалентно:
SELECT TOP (50) [t0].[countryID], [t0].[regionID], [t0].[countryName], [t0].[code]
FROM [dbo].[countries] AS [t0]
WHERE [t0].[regionID] = 5
РЕДАКТИРОВАТЬ: Комментарии, это не обязательно, потому что с отдельным Take (), вы все равно можете использовать его так:
var c = (from co in db.countries
where co.regionID == 5
select co);
var l = c.Take(50).ToList();
И Результат будет таким же, как и раньше.
SELECT TOP (50) [t0].[countryID], [t0].[regionID], [t0].[countryName], [t0].[code]
FROM [dbo].[countries] AS [t0]
WHERE [t0].[regionID] = @p0
Тот факт, что вы написали IQueryable = IQueryable.Take(50)
, является сложной частью здесь.