Ich habe eine Klasse mit einer bool
Verfahren, z.B .: bekamKann ich Vergleichselemente aus meinem Domänenmodell zuerst im Entity Framework-Code verwenden?
public bool IsInFuture()
{ return this.Date > DateTime.Now; }
Und ich speichern sie in einer Datenbank EF-Code Zuerst verwenden. Wenn ich werde versuchen, dieses Prädikat in Linq-Operationen verwendet wird, werde ich eine Ausnahme erhalten, da es nicht in SQL übersetzt werden kann:
await context.Where(order => order.IsInFuture()).ToListAsync();
, die Logik des Prädikats ziemlich kompliziert sein kann, und ich würde nicht gerne Dupliziere es in meinem Code. Kann ich Code in Linq-Operationen einbinden? Ich bin mir ziemlich sicher, dass dieses Problem eine Lösung hat.
Vielen Dank im Voraus!
Warum muss dies eine Bool-Methode sein? Es sieht für mich nur eine Rückgabeeigenschaft aus, dann können Sie diese in Ihrem linq await-Kontext verwenden. Wo (order => order.IsInFuture) .ToListAsync(); –
Dann muss ich diese Eigenschaften in einer Datenbank speichern. Und ich brauche sie zu berechnen. – Waldemar
Sie können benutzerdefinierte Funktionen nicht verwenden. Sie können Ausdrücke verwenden, sie müssen jedoch in SQL übersetzt werden können. –