0

私は次の方法を持っています:

public IEnumerable<OrderLines> RetrieveOrderLines(Expression<Func<OrderLines,
                                                   bool>> expression)
{
    return _context.OrderLines.Where(expression);
}

このメソッドは、テスト プロジェクト (C#) から使用されます。

var testLine = repo.RetrieveOrderLines(x => x.I_ID == 1 
                                         && x.T_ID == 2).Single();

また、VB.Net である本番プロジェクトも、次のようにこのメソッドにアクセスします。

Dim line As OrderLines = repo.RetrieveConsumptionLines(Function(x) x.I_ID = InvId 
                                                       And x.T_ID = tId).Single()

C# テストは正常に動作しています。エラーや警告は表示されませんが、VB の行が強調表示され、re-sharper によって次の警告が表示されます。

ラムダ式をパラメーター型に変換するときにランタイム エラーが発生することがある system.linq.expressions.expression(Of System.Func(Of OrderLines, Boolean))

なぜこれを行うための解決策またはより良い方法がありますか? 私はラムダ式を初めて使用するので、アドバイスをいただければ幸いです。

ありがとう。

4

0 に答える 0