簡體   English   中英

實體框架,如何使Sum <>接受方法?

[英]Entity Framework, how to get Sum<> accept a method?

我有點卡住,我不確定是否可以。 我正在Entity Framework中編寫一個數據庫,並且我想創建一個可被dataconext使用的方法。

所以我想寫點...

double total = db.FlightEntries().Sum(f => f.GetTotalflightTimes());

所以我知道EF到SQL不會理解“ GetTotalflightTimes()

所以我給這個...

public static class MyFlightEntryExtentions
{
    public static Expression< Func<FlightEntry, double>> GetTotalFlightTimes(this FlightEntry flightEntry)
    {
        double value
         ...........
         ..........
        return x => value;
    }
} 

錯誤4無法轉換類型

'System.Linq.Expressions.Expression>'為'double'

我知道我可能會走錯路,所以有人可以告訴我!

尚不清楚要實現什么,但是如果要執行一些自定義求和邏輯,而不僅僅是指向數據庫中的屬性/列,則需要先完成查詢,然后對已經讀取的對象執行求和:

db.FlightEntries().ToArray().Sum(f => f.GetTotalflightTimes());

並且您的擴展方法必須為此返回double;

另一方面,如果您的目標是要有一些邏輯可以自定義總和下的列,那么您就無法擁有將實體作為參數的方法,則您必須僅知道您的實體的類型並可能不保存一些相關的標識符來構建表達式在實體內部。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM