0

私は少し立ち往生しており、これが可能かどうかはわかりません。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」に

私はこれについて間違った方向に進んでいる可能性があることを知っているので、誰か教えてください!

4

1 に答える 1

0

達成したいことは少し不明ですが、データベースのプロパティ/列を単に指していないカスタム合計ロジックを実行する場合は、最初にクエリを終了する必要があり、既に読み取られたオブジェクトよりも合計を実行できます。

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

そして、拡張メソッドはそのために double を返さなければなりません。

一方、あなたの目標が合計の下の列をカスタマイズするいくつかのロジックを持つことである場合は、エンティティをパラメーターとして持つメソッドを持つことはできません。エンティティのタイプと、おそらく保存されていない関連する識別子のみを知っている式を作成する必要がありますエンティティの内部。

于 2013-03-12T11:29:54.950 に答える