Mein Unternehmen hat eine Eigenschaft, die von anderen EigenschaftenLinq (bis nhibernate) where-Klausel auf dynamische Eigenschaft in 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;
}
}
ist es eine Möglichkeit, abgeleitet ist, ich die folgenden
return repository.Query().Where(myClass => myClass.Severity == High);
ändern kann so dass die WHERE-Klausel in SQL und nicht in Code ausgewertet wird?
Ich habe versucht, so etwas zu tun, aber
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);
Ich vermute, ohne Erfolg, weil die func kann nicht auf SQL ausgewertet werden. Gibt es eine andere Möglichkeit, dies zu tun, ohne
mit doppelten Berechnungen für Schwere endenJede Hilfe dankbar, ta
Edit: Dies ist eine vereinfachte Version von dem, was im Versuch, nach Antworten zu tun, ich bin auf der Suche, dass decken die Theorie von diesem eher als eine spezifische Reparatur ab (obwohl immer noch willkommen). Ich bin daran interessiert, was möglich ist, und Best Practices, um so etwas zu erreichen.
Andrew