我有以下方法:
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 表达式的新手,因此不胜感激。
谢谢。