-1

こんにちは、インクルードする必要がある要素のリストを指定することで、熱心な読み込みを使用しようとしています。これは私が書いた式です:

public class Prefetch<TEntity>
{
    private readonly List<LambdaExpression> items = new List<LambdaExpression>();

    public Prefetch<TEntity> Include<TPath>(Expression<Func<TEntity, TPath>> path)
    {
        this.items.Add(path);

            return this;
        }
}

 private static IEnumerable<string> GetCoverPrefetch()
    {

         new Prefetch<ContractCoverInstance>().Include(x => x.Tariff.AksAssumptionData.ToList().ForEach(x => x.MortalityTableMainInsuredMale))
    }

私が書いたものが正しいかどうか、期待どおりに動作するかどうかはわかりません。モデルの変更が原因で一連のコンパイルエラーが発生するため、アプリケーションをしばらくテストできません。修正する必要があります。アプリケーションがテストされます。

これは、この式が行うと信じていることです。間違っている場合は修正してください。

リスト内の各要素の結果として、AksAssumptionData が MortalityTableMainInsuredMale を取得し、それを含める

これが正しくない場合、ラムダ式で今言ったことをどのように達成できますか?

4

1 に答える 1

0
  1. itemsのリストにする必要がありTEntityます...なぜラムダ式のリストがあるのでしょうか?
  2. あなたはそれがシングルトンであるかのようにインクルードを使用しています...私の意見では、良いデザインではありません。
  3. GetCoverPrefetch署名によると、を返すことになっIEnumerable<string>ていますが、文字列には何が含まれていると思いますか? 関数から文字列を返していません。何もしないために使用ForEachしているだけです-コンパイルエラーが発生します。通常のforeachを使用して を使用する必要がありますがyield returnreturn new Prefetch<ContractCoverInstance>().Include(...)Include が返すものは ではなく、IEnumerable<string>ですList<LambdaExpression>
  4. 意味がありません。適切に返さitemsれたとしても、GetCoverPrefetch()渡したラムダ式が含まれているだけなので、何もしません。
于 2013-04-30T11:16:51.963 に答える