I need to give nhibernate where expression as a function parameter:
Public Function FindByCriteria(customCriteria As Expression(Of Func(Of Transaction, Boolean))) As IList(Of Transaction)
Dim query = GetBasicQuery()
query = query.Where(customCriteria)
return query.ToList()
End Function
Method is called by setting address of function inside lambda expression, because expressions doesn't support multiline in VB.NET
Public Sub SearchService(criteria As SearchCriteria)
_transactionService.FindByCriteria(Function(x) BuildCustomCriteriaForCustomer(x, criteria))
...
End Sub
Then inside BuildCustomCriteriaForCustomer I'm using x and criteria.
However this doesn't seem to work, it just throws NotSupportedException without any details.
Is it possible to give expressions outside of function scope?
Public Function FindBySearchCriteria(customCriteria As SearchCriteria) As IList(Of Transaction)in your transactionService?