У моего объекта есть свойство, полученное из других свойств
public class MyClass
{
public DateTime Deadline { get; set; }
public Severity Severity
{
return (DateTime.Now - Deadline < new TimeSpan(5, 0, 0, 0)) ? Severity.High : Severity.Low;
}
}
есть ли способ изменить следующее
return repository.Query().Where(myClass => myClass.Severity == High);
чтобы предложение where оценивалось в sql, а не в коде?
Я пытался сделать что-то подобное, но безрезультатно
public class MyClass
{
public DateTime Deadline { get; set; }
public Func<MyClass, bool> SeverityFunc = (DateTime.Now - Deadline < new TimeSpan(5, 0, 0, 0)) ? Severity.High : Severity.Low;
public Severity Severity
{
return SeverityFunc.Invoke(this);
}
}
return repository.Query().Where(myClass => myClass.SeverityFunc(myclass) == High);
Я предполагаю, что функция не может быть оценена как SQL. Есть ли какой-то другой способ сделать это, не заканчивая двойными вычислениями для серьезности
Любая помощь приветствуется, т.
Редактировать: Это упрощенная версия того, что я пытаюсь сделать, я ищу ответы, которые касаются теории этого, а не конкретного исправления (хотя все еще приветствуются) Я заинтересован в том, что возможно, и в лучших практиках для достижения такого рода вещей.
Andrew