Это должно в основном быть синтаксисом Linq для вашего запроса.
Linq - это некая "внутренняя структура" .NET / C #, и вы используете Entity Framework.
На мой взгляд, нет никакого реального смысла в их разделении.
Это синтаксис «Linq to SQL», который я бы использовал в «DataContext», который вы создаете с помощью EF:
DataContext
.tbl_Amounts
.Where(a => a.fk_Roleid = 2)
.Sum(a => a.Amount);
Если у вас есть коллекция записей под названием Amounts, это будет версия "linq to objects":
Amounts
.Where(a => a.fk_Roleid = 2)
.Sum(a => a.Amount);
Как видите, разницы нет! (за исключением того, что под капотом первый в контексте данных EF будет преобразован в запрос db SQL)
Но на самом деле это может зависеть от вашей версии Entity Framework (не все функции linq правильно переведены в SQL)