Если мы сделаем шаг назад и фактически разберем то, что вы спрашиваете в своем вопросе, возможно, будет проще объяснить мой ответ.
- У нас есть объект / сущность с именем Products
- Существует вычисляемое поле, которое будет (("LoanAmount" * "Rate") / 12)
- CostPerMonth не требуется хранить в базе данных
Таким образом, это вычисленное поле является бизнес-правилом для сущности продукта. Учитывая, что вы используете MVC, есть только одно место, куда может пойти этот код / логика, и это модель.
Учитывая, что вы используете EF, он будет находиться в не отображенном / вычисляемом поле, и код, который даст вам идею, будет выглядеть примерно так ...
[NotMapped]
public decimal CostPerMonth
{
get { return (LoanAmount * Rate)/12 ; }
}
Я могу несколько дней рассказывать о проблемах, связанных с фрагментированной бизнес-логикой на разных уровнях.
Теперь, если вы хотите, чтобы эта логика легко использовалась другими клиентами, вам нужно предоставить для этого сервис. (вы можете использовать webAPI / service stack / wcf и т. д.) Это действительно еще один вопрос, основанный на ваших потребностях. Но дело в том, что ваша логика в одном месте.