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 给了我以下警告:

将 lambda 表达式转换为参数类型 system.linq.expressions.expression(Of System.Func(Of OrderLines, Boolean)) 时可能会出现运行时错误

任何想法为什么以及是否有解决方案或更好的方法来做到这一点?我是 Lambda 表达式的新手,因此不胜感激。

谢谢。

4

0 回答 0