Я создаю сложный запрос Linq, и я столкнулся с проблемой: «Указанный член типа« JobRatio »не поддерживается в LINQ to Entities».Стратегии для переназначения вычисляемых типов в LINQ для объектов
В моей модели, Джобс является IEnumerable:
Работа имеет следующую вычисляемое свойство:
public decimal JobRatio
{
get
{
return TotalValueApprovedQuotes == 0 ? 0 : ((TotalValueApprovedQuotes - TotalWorkOrders)/TotalValueApprovedQuotes);
}
}
Когда я пытаюсь установить, где это пункты из моего запроса на основе требований пользователя:
if (model.ShowJobRatio)
{
jobs = jobs.Where(x => x.JobRatio < 0.3m);
}
Я получаю ошибку, что «указанный тип член„JobRatio“не поддерживается в LINQ к Entities»
Хотя я понимаю, что могу изменить свой IEnumerable в List, чтобы решить проблему, у меня на самом деле есть несколько из этих вычисленных свойств, которые нужно пройти, и хотелось бы еще не запускать запрос. (поскольку я все еще строю предложения Where)
Одним из вариантов было бы превратить этот тип в базовое десятичное значение, которое предварительно рассчитано, каковы некоторые стратегии для решения этой проблемы? И если я должен был рассчитать это, я делаю это на модели? Или в контроллере, когда меняются TotalValueApprovedQuotes, TotalWorkOrders или TotalValueApprovedQuotes?
Вам нужно будет рассчитать его в запросе, вы не можете использовать свойство. Также вы должны добавить атрибут «NotMapped» над этим свойством. –