Я пытаюсь использовать метод запросов Fluent-NHibernate, который выглядит следующим образом:
public T[] Query<T>(Expression<System.Func<T, bool>> where)
{
return _session.Linq<T>().Where(where).ToArray();
}
Я использую VB, поэтому чтобы отправить ему лямбда-выражение, я могу назвать его строкой, подобной этой:
Dim products = flRepos.Query(Of Product)(Function(p As Product) p.Id > 5)
Этот синтаксис правильный, но существует проблема с базовым использованием Fluent Linq для Nhibernate, которая прерывается при использовании лямбда-выражений VB.
Я в порядке, когда я не использую лямбда-выражения, я просто не знаю, как переписать эту строку, чтобы не использовать лямбду.
Для справки, использование полных запросов linq в VB действительно работает с Linq 2 Nhibernate. Этот запрос работал нормально для меня:
Dim product = (From p In session.Linq(Of Product)() _
Where p.Id = testId _
Select p).FirstOrDefault()