将lambda表达式转换为参数类型system.linq.expressions时,可能会发生运行时错误

时间:2013-01-30 13:02:35

标签: c# vb.net linq lambda

我有以下方法:

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中的行突出显示并且重新锐化给了我以下警告:

将lambda表达式转换为参数时,可能会发生

运行时错误 type system.linq.expressions.expression(Of System.Func(Of OrderLines,Boolean))

任何想法为什么并且有解决方案或更好的方法吗?我是Lambda表达的新手,所以任何建议都值得赞赏。

感谢。

0 个答案:

没有答案
相关问题