Mon entité a une propriété qui est dérivé d'autres propriétésLINQ (à NHibernate) où la clause sur la propriété dynamique sql
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;
}
}
est-il un moyen que je peux modifier les éléments suivants
return repository.Query().Where(myClass => myClass.Severity == High);
si que la clause where évalue en sql plutôt qu'en code?
J'ai essayé de faire quelque chose comme ça, mais en vain
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);
Je devine que parce que le func ne peut pas être évalué à SQL. Y at-il une autre façon de le faire sans se retrouver avec des calculs en double pour la gravité
Toute aide appréciée, ta
Edit: Ceci est une version simplifiée de ce qui im essayant de faire, je suis à la recherche des réponses que couvrir la théorie de ce plutôt qu'une solution spécifique (bien que toujours la bienvenue). Je suis intéressé par ce qui est possible, et les meilleures pratiques pour réaliser ce genre de chose.
Andrew