我如何重構我的方法以使其布爾運算式作為代碼而不是直接作為布林值回傳。我需要這個用于 EF Core 查詢,因此將代碼作為委托回傳非常重要。
private static bool AreNotNull(DateTime? dateTime1, DateTime? dateTime2)
=> dateTime1 != null && dateTime2 != null;
uj5u.com熱心網友回復:
你可以這樣做:
private static Func<bool> AreNotNull(DateTime? dateTime1, DateTime? dateTime2)
=> () => dateTime1 != null && dateTime2 != null;
更新:正如所指出的,您無需在每次呼叫該方法時進行評估:
private static Func<bool> AreNotNull(DateTime? dateTime1, DateTime? dateTime2){
var res = dateTime1 != null && dateTime2 != null
return () => res;
}
此外,如果您想過濾一個 IQueryable ( cf. ),如果您希望資料庫進行過濾,您必須這樣做,您需要回傳Expression<Func<bool>>:
private static Expression<Func<bool>> AreNotNull(DateTime? dateTime1, DateTime? dateTime2)
=> () => dateTime1 != null && dateTime2 != null;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/450980.html
