私は次の方法を持っています:
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))
なぜこれを行うための解決策またはより良い方法がありますか? 私はラムダ式を初めて使用するので、アドバイスをいただければ幸いです。
ありがとう。